mstover1    02/04/30 18:39:41

  Modified:    src_1/org/apache/jmeter/gui JMeterFileFilter.java
               src_1/org/apache/jmeter/gui/action Analyze.java Load.java
               src_1/org/apache/jmeter/gui/util FileDialoger.java
                        FilePanel.java
               src_1/org/apache/jmeter/reporters ResultCollector.java
               src_1/org/apache/jmeter/resources messages.properties
                        messages_ja.properties messages_no.properties
               src_1/org/apache/jmeter/threads JMeterThread.java
               src_1/org/apache/jmeter/util ClassFinder.java
                        SearchByClass.java
               src_1/org/apache/jmeter/visualizers AssertionVisualizer.java
                        GraphAccumVisualizer.java SplineVisualizer.java
                        StatVisualizer.java TableVisualizer.java
                        ViewResultsFullVisualizer.java
                        ViewResultsVisualizer.java
               src_1/org/apache/jmeter/visualizers/gui
                        AbstractVisualizer.java
  Added:       src_1/org/apache/jmeter/threads JMeterThreadMonitor.java
  Log:
  Debugging results-saving code in src_1
  
  Revision  Changes    Path
  1.3       +25 -2     jakarta-jmeter/src_1/org/apache/jmeter/gui/JMeterFileFilter.java
  
  Index: JMeterFileFilter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/JMeterFileFilter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JMeterFileFilter.java     29 Apr 2002 17:08:08 -0000      1.2
  +++ JMeterFileFilter.java     1 May 2002 01:39:40 -0000       1.3
  @@ -58,8 +58,15 @@
   import java.io.*;
   import javax.swing.*;
   import javax.swing.filechooser.*;
  +import java.util.Arrays;
   
   public class JMeterFileFilter extends javax.swing.filechooser.FileFilter {
  +     String[] exts;
  +     
  +     public JMeterFileFilter(String[] extensions)
  +     {
  +             exts = extensions;
  +     }
   
        public boolean accept(File f) {
                boolean isAccepted = false;
  @@ -67,7 +74,7 @@
                if (f.isDirectory()) {
                        isAccepted = true;
                } else {
  -                     if (f.getName().toLowerCase().endsWith(".jmx")) {
  +                     if (accept(f.getName().toLowerCase())) {
                                isAccepted = true;
                        } else {
                                isAccepted = false;
  @@ -76,8 +83,24 @@
   
                return isAccepted;
        }
  +     
  +     public boolean accept(String filename)
  +     {
  +             for(int i = 0;i < exts.length;i++)
  +             {
  +                     if(filename.endsWith(exts[i]))
  +                     {
  +                             return true;
  +                     }
  +             }
  +             if(exts.length == 0)
  +             {
  +                     return true;
  +             }
  +             return false;
  +     }
   
        public String getDescription() {
  -             return "JMeter (*.jmx)";
  +             return "JMeter "+Arrays.asList(exts).toString();
        }
   }
  
  
  
  1.3       +2 -2      jakarta-jmeter/src_1/org/apache/jmeter/gui/action/Analyze.java
  
  Index: Analyze.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/action/Analyze.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Analyze.java      29 Apr 2002 17:08:08 -0000      1.2
  +++ Analyze.java      1 May 2002 01:39:40 -0000       1.3
  @@ -72,7 +72,7 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:08 $
  + *@created   $Date: 2002/05/01 01:39:40 $
    *@version   1.0
    ***************************************/
   public class Analyze implements Command
  @@ -108,7 +108,7 @@
        public void doAction(ActionEvent e)
        {
                FileReporter analyzer = new FileReporter();
  -             File f = FileDialoger.promptToOpenFile().getSelectedFile();
  +             File f = FileDialoger.promptToOpenFile(new 
String[]{".jtl"}).getSelectedFile();
                if(f != null)
                {
                        try
  
  
  
  1.3       +2 -2      jakarta-jmeter/src_1/org/apache/jmeter/gui/action/Load.java
  
  Index: Load.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/action/Load.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Load.java 29 Apr 2002 17:08:08 -0000      1.2
  +++ Load.java 1 May 2002 01:39:40 -0000       1.3
  @@ -75,7 +75,7 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:08 $
  + *@created   $Date: 2002/05/01 01:39:40 $
    *@version   1.0
    ***************************************/
   public class Load implements Command
  @@ -109,7 +109,7 @@
         ***************************************/
        public void doAction(ActionEvent e)
        {
  -             JFileChooser chooser = FileDialoger.promptToOpenFile();
  +             JFileChooser chooser = FileDialoger.promptToOpenFile(new 
String[]{".jmx"});
                InputStream reader = null;
                try
                {
  
  
  
  1.3       +9 -4      
jakarta-jmeter/src_1/org/apache/jmeter/gui/util/FileDialoger.java
  
  Index: FileDialoger.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/util/FileDialoger.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FileDialoger.java 29 Apr 2002 17:08:09 -0000      1.2
  +++ FileDialoger.java 1 May 2002 01:39:40 -0000       1.3
  @@ -9,7 +9,7 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:09 $
  + *@created   $Date: 2002/05/01 01:39:40 $
    *@version   1.0
    ***************************************/
   
  @@ -36,7 +36,7 @@
         *@returns   The JFileChooser that interacted with the user, after they are
         *      finished using it (accept or otherwise).
         ***************************************/
  -     public static JFileChooser promptToOpenFile()
  +     public static JFileChooser promptToOpenFile(String[] exts)
        {
                JFileChooser jfc = null;
   
  @@ -58,12 +58,17 @@
                        jfc = new JFileChooser(lastJFCDirectory);
                }
   
  -             jfc.addChoosableFileFilter(new JMeterFileFilter());
  +             jfc.addChoosableFileFilter(new JMeterFileFilter(exts));
                jfc.showOpenDialog(GuiPackage.getInstance().getMainFrame());
                lastJFCDirectory = jfc.getCurrentDirectory().getAbsolutePath();
   
                return jfc;
        }
  +     
  +     public static JFileChooser promptToOpenFile()
  +     {
  +             return promptToOpenFile(new String[0]);
  +     }
   
        /****************************************
         * Prompts the user to choose a file from their filesystems for our own devious
  @@ -102,7 +107,7 @@
                        jfc.setSelectedFile(new File(lastJFCDirectory, filename));
                }
   
  -             jfc.addChoosableFileFilter(new JMeterFileFilter());
  +             jfc.addChoosableFileFilter(new JMeterFileFilter(new String[]{".jmx"}));
   
                jfc.showSaveDialog(GuiPackage.getInstance().getMainFrame());
                lastJFCDirectory = jfc.getCurrentDirectory().getAbsolutePath();
  
  
  
  1.3       +12 -3     jakarta-jmeter/src_1/org/apache/jmeter/gui/util/FilePanel.java
  
  Index: FilePanel.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/util/FilePanel.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FilePanel.java    30 Apr 2002 02:41:32 -0000      1.2
  +++ FilePanel.java    1 May 2002 01:39:40 -0000       1.3
  @@ -52,7 +52,9 @@
        {
                add(label);
                add(filename);
  +             filename.addActionListener(this);
                add(browse);
  +             browse.setActionCommand("browse");
                browse.addActionListener(this);
        }
   
  @@ -94,10 +96,17 @@
         */
        public void actionPerformed(ActionEvent e)
        {
  -             JFileChooser chooser = FileDialoger.promptToOpenFile();
  -             if(chooser != null && chooser.getSelectedFile() != null)
  +             if(e.getActionCommand().equals("browse"))
  +             {
  +                     JFileChooser chooser = FileDialoger.promptToOpenFile(new 
String[]{".jtl"});
  +                     if(chooser != null && chooser.getSelectedFile() != null)
  +                     {
  +                             filename.setText(chooser.getSelectedFile().getPath());
  +                             fireFileChanged();
  +                     }
  +             }
  +             else
                {
  -                     filename.setText(chooser.getSelectedFile().getPath());
                        fireFileChanged();
                }
        }
  
  
  
  1.6       +38 -14    
jakarta-jmeter/src_1/org/apache/jmeter/reporters/ResultCollector.java
  
  Index: ResultCollector.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/reporters/ResultCollector.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ResultCollector.java      30 Apr 2002 02:41:32 -0000      1.5
  +++ ResultCollector.java      1 May 2002 01:39:40 -0000       1.6
  @@ -62,13 +62,14 @@
   import org.apache.jmeter.visualizers.ViewResultsVisualizer;
   import org.apache.avalon.framework.configuration.*;
   import org.xml.sax.SAXException;
  +import org.apache.jmeter.exceptions.*;
   import org.apache.jmeter.testelement.TestListener;
   
   /**
    *  Title: Description: Copyright: Copyright (c) 2001 Company:
    *
    *@author     Michael Stover
  - *@created    $Date: 2002/04/30 02:41:32 $
  + *@created    $Date: 2002/05/01 01:39:40 $
    *@version    1.0
    */
   
  @@ -85,6 +86,10 @@
        private PrintWriter out;
        private DefaultConfigurationSerializer serializer = new 
DefaultConfigurationSerializer();
        private boolean inLoading = false;
  +     private boolean inTest = false;
  +     private static Set openFiles = new HashSet();
  +     private static Map fileOwners = new HashMap();
  +     
   
        /**
         *  !ToDo (Constructor description)
  @@ -99,15 +104,27 @@
         *
         *@param  f  The new filename value`
         */
  -     public void setFilename(String f) throws IOException
  +     public void setFilename(String f) throws IOException,IllegalUserActionException
        {
  +             if(openFiles.contains(f) && !fileOwners.get(f).equals(this))
  +             {
  +                     throw new 
IllegalUserActionException(JMeterUtils.getResString("file_already_in_use"));
  +             }
  +             if(inTest)
  +             {
  +                     throw new 
IllegalUserActionException(JMeterUtils.getResString("busy_testing"));
  +             }
                System.out.println("Setting filename");
                try
                {
  -                     filename = f;
                        finalizeFileOutput();
  -                     clear();
  +                     openFiles.remove(filename);
  +                     fileOwners.remove(filename);
  +                     filename = f;
                        loadExistingFile();
  +                     openFiles.add(filename);
  +                     fileOwners.put(filename,this);
  +                     finalizeFileOutput();
                }
                catch(SAXException e)
                {
  @@ -123,15 +140,18 @@
        public void testEnded()
        {
                finalizeFileOutput();
  +             inTest = false;
        }
        
        public void testStarted()
        {
  +             inTest = true;
        }
   
        public void loadExistingFile()
                throws SAXException, IOException, ConfigurationException {
                        inLoading = true;
  +                     clear();
                try {
                        Configuration savedSamples = getConfiguration(filename);
                        readSamples(savedSamples);
  @@ -144,9 +164,9 @@
         *  Description of the Method
         */
        private void writeFileStart()
  -     {
  -             out.print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
  -             out.print("<testResults>\n");
  +     {               
  +                     out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
  +                     out.println("<testResults>");
        }
   
        /**
  @@ -364,20 +384,24 @@
        private void initializeFileOutput() throws IOException,
                        ConfigurationException,SAXException
        {
  +             
                if(out == null && filename != null)
                {
                        if(!inLoading)
                        {
                                loadExistingFile();
                        }
  -                     try
  -                     {
  -                             out = new PrintWriter(new BufferedOutputStream(new 
FileOutputStream(filename)));
  -                             writeFileStart();
  -                     }
  -                     catch(FileNotFoundException e)
  +                     if(out == null)
                        {
  -                             out = null;
  +                             try
  +                             {
  +                                     out = new PrintWriter(new 
BufferedOutputStream(new FileOutputStream(filename)));
  +                                     writeFileStart();
  +                             }
  +                             catch(FileNotFoundException e)
  +                             {
  +                                     out = null;
  +                             }
                        }
                }
        }
  
  
  
  1.5       +3 -1      
jakarta-jmeter/src_1/org/apache/jmeter/resources/messages.properties
  
  Index: messages.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/resources/messages.properties,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- messages.properties       29 Apr 2002 17:08:13 -0000      1.4
  +++ messages.properties       1 May 2002 01:39:40 -0000       1.5
  @@ -209,4 +209,6 @@
   http_response_code=HTTP response code
   aggregate_report=Aggregate Report
   login_config_element=Login Config Element
  -menu_non_test_elements=Non-Test Elements
  \ No newline at end of file
  +menu_non_test_elements=Non-Test Elements
  +file_already_in_use=That file is already in use
  +busy_testing=I'm busy testing, please stop the test before changing settings
  \ No newline at end of file
  
  
  
  1.4       +3 -1      
jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_ja.properties
  
  Index: messages_ja.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_ja.properties,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- messages_ja.properties    29 Apr 2002 17:08:13 -0000      1.3
  +++ messages_ja.properties    1 May 2002 01:39:40 -0000       1.4
  @@ -203,4 +203,6 @@
   http_response_code=HTTP response code
   aggregate_report=Aggregate Report
   login_config_element=Login Config Element
  -menu_non_test_elements=Non-Test Elements
  \ No newline at end of file
  +menu_non_test_elements=Non-Test Elements
  +file_already_in_use=That file is already in use
  +busy_testing=I'm busy testing, please stop the test before changing settings
  \ No newline at end of file
  
  
  
  1.4       +3 -1      
jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_no.properties
  
  Index: messages_no.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_no.properties,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- messages_no.properties    29 Apr 2002 17:08:13 -0000      1.3
  +++ messages_no.properties    1 May 2002 01:39:40 -0000       1.4
  @@ -194,4 +194,6 @@
   http_response_code=HTTP response code
   aggregate_report=Aggregate Report
   login_config_element=Login Config Element
  -menu_non_test_elements=Non-Test Elements
  \ No newline at end of file
  +menu_non_test_elements=Non-Test Elements
  +file_already_in_use=That file is already in use
  +busy_testing=I'm busy testing, please stop the test before changing settings
  \ No newline at end of file
  
  
  
  1.7       +32 -64    jakarta-jmeter/src_1/org/apache/jmeter/threads/JMeterThread.java
  
  Index: JMeterThread.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/threads/JMeterThread.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JMeterThread.java 30 Apr 2002 02:41:32 -0000      1.6
  +++ JMeterThread.java 1 May 2002 01:39:40 -0000       1.7
  @@ -65,135 +65,103 @@
   import org.apache.jmeter.timers.Timer;
   import org.apache.jmeter.util.ListedHashTree;
   import org.apache.jmeter.testelement.TestElement;
  -
   /****************************************
    * The JMeter interface to the sampling process, allowing JMeter to see the
    * timing, add listeners for sampling events and to stop the sampling process.
    *
    *@author    $Author: mstover1 $
  - *@created   $Date: 2002/04/30 02:41:32 $
  - *@version   $Revision: 1.6 $
  + *@created   $Date: 2002/05/01 01:39:40 $
  + *@version   $Revision: 1.7 $
    ***************************************/
  -public class JMeterThread implements Runnable, java.io.Serializable
  -{
  +public class JMeterThread implements Runnable, java.io.Serializable {
        static Map samplers = new HashMap();
  -
        int initialDelay = 0;
        Controller controller;
        private boolean running;
        ListedHashTree testTree;
        TestCompiler compiler;
        JMeterThreadMonitor monitor;
  -
        /****************************************
         * !ToDo (Constructor description)
         ***************************************/
  -     public JMeterThread() { }
  -
  -     public JMeterThread(ListedHashTree test,JMeterThreadMonitor monitor)
  -     {
  +     public JMeterThread() {}
  +     public JMeterThread(ListedHashTree test, JMeterThreadMonitor monitor) {
                this.monitor = monitor;
                testTree = test;
                compiler = new TestCompiler(testTree);
  -             controller = (Controller)testTree.getArray()[0];
  +             controller = (Controller) testTree.getArray()[0];
        }
  -
        /****************************************
         * !ToDo (Method description)
         ***************************************/
  -     public void run()
  -     {
  +     public void run() {
                testTree.traverse(compiler);
                running = true;
                //listeners = controller.getListeners();
                Sampler entry = null;
                rampUpDelay();
  -             while(running)
  -             {
  -                     while(controller.hasNext())
  -                     {
  +             while (running) {
  +                     while (controller.hasNext()) {
                                SamplePackage pack = 
compiler.configureSampler(controller.next());
                                delay(pack.getTimers());
                                SampleResult result = pack.getSampler().sample(null);
  -                             checkAssertions(pack.getAssertions(),result);
  -                             notifyListeners(pack.getSampleListeners(),result);
  +                             checkAssertions(pack.getAssertions(), result);
  +                             notifyListeners(pack.getSampleListeners(), result);
                        }
  -                     if(controller.isDone())
  -                     {
  +                     if (controller.isDone()) {
                                running = false;
                        }
                }
                monitor.threadFinished(this);
        }
  -
        /****************************************
         * !ToDo (Method description)
         ***************************************/
  -     public void stop()
  -     {
  +     public void stop() {
                running = false;
        }
  -
  -     private void checkAssertions(List assertions, SampleResult result)
  -     {
  +     private void checkAssertions(List assertions, SampleResult result) {
                Iterator iter = assertions.iterator();
  -             while(iter.hasNext())
  -             {
  -                     
result.addAssertionResult(((Assertion)iter.next()).getResult(result));
  +             while (iter.hasNext()) {
  +                     result.addAssertionResult(((Assertion) 
iter.next()).getResult(result));
                }
        }
  -
  -     private void delay(List timers)
  -     {
  +     private void delay(List timers) {
                int sum = 0;
                Iterator iter = timers.iterator();
  -             while(iter.hasNext())
  -             {
  -                     sum += ((Timer)iter.next()).delay();
  +             while (iter.hasNext()) {
  +                     sum += ((Timer) iter.next()).delay();
                }
  -             try
  -             {
  +             try {
                        Thread.sleep(sum);
                }
  -             catch(InterruptedException e)
  -             {
  +             catch (InterruptedException e) {
                        e.printStackTrace();
                }
        }
  -
  -     private void notifyListeners(List listeners,SampleResult result)
  -     {
  -             SampleEvent event = new SampleEvent(result, 
(String)controller.getProperty(TestElement.NAME));
  +     private void notifyListeners(List listeners, SampleResult result) {
  +             SampleEvent event =
  +                     new SampleEvent(result, (String) 
controller.getProperty(TestElement.NAME));
                Iterator iter = listeners.iterator();
  -             while(iter.hasNext())
  -             {
  -                     SampleListener item = (SampleListener)iter.next();
  +             while (iter.hasNext()) {
  +                     SampleListener item = (SampleListener) iter.next();
                        item.sampleOccurred(event);
                }
        }
  -
  -     public void setInitialDelay(int delay)
  -     {
  +     public void setInitialDelay(int delay) {
                initialDelay = delay;
        }
  -
        /****************************************
         * Initial delay if ramp-up period is active for this group
         ***************************************/
  -     private void rampUpDelay()
  -     {
  -             if(initialDelay > 0)
  -             {
  -                     try
  -                     {
  +     private void rampUpDelay() {
  +             if (initialDelay > 0) {
  +                     try {
                                Thread.sleep(initialDelay);
                        }
  -                     catch(InterruptedException e)
  -                     {
  +                     catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }
  -
  -}
  -
  +}
  \ No newline at end of file
  
  
  
  1.1                  
jakarta-jmeter/src_1/org/apache/jmeter/threads/JMeterThreadMonitor.java
  
  Index: JMeterThreadMonitor.java
  ===================================================================
  package org.apache.jmeter.threads;
  /**
   * @author Administrator
   *
   * To change this generated comment edit the template variable "typecomment":
   * Window>Preferences>Java>Templates.
   */
  public interface JMeterThreadMonitor 
  {
        public void threadFinished(JMeterThread thread);
  }
  
  
  
  1.4       +298 -1058 jakarta-jmeter/src_1/org/apache/jmeter/util/ClassFinder.java
  
  Index: ClassFinder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/util/ClassFinder.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ClassFinder.java  29 Apr 2002 17:08:14 -0000      1.3
  +++ ClassFinder.java  1 May 2002 01:39:40 -0000       1.4
  @@ -105,32 +105,13 @@
    * <http://www.apache.org/>.
   
    */
  -
   package org.apache.jmeter.util;
  -
  -
  -
   import java.util.*;
  -
  -
  -
   import java.util.zip.*;
  -
  -
  -
   import java.io.*;
  -
  -
   import java.lang.reflect.Modifier;
  -
  -
  -
   import junit.framework.TestCase;
  -
  -
  -
   import org.apache.log4j.*;
  -
   /************************************************************
   
    *  This class finds classes that implement one or more specified interfaces.
  @@ -148,475 +129,247 @@
    *@version    1.0
   
    ***********************************************************/
  -
  -
  -
  -public class ClassFinder
  -
  -{
  -
  -
  -
  +public class ClassFinder {
        private static Category catClass =
  -
  -                     Category.getInstance(ClassFinder.class.getName());
  -
  -
  -
  -     private ClassFinder()
  -
  -     {
  -
  -     }
  -
  -
  -
  +             Category.getInstance(ClassFinder.class.getName());
  +     private ClassFinder() {}
        // static only
  -
  -
  -
        /************************************************************
  -
  +     
         *  Convenience method for <code>findClassesThatExtend(Class[], boolean)</code>
  -
  +     
         *  with the option to include inner classes in the search set to false
  -
  +     
         *
  -
  +     
         *@param  superClasses                Description of Parameter
  -
  +     
         *@return                             ArrayList containing discovered classes.
  -
  +     
         *@exception  IOException
  -
  +     
         *@exception  ClassNotFoundException
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     public static List findClassesThatExtend(Class[] superClasses) throws 
IOException, ClassNotFoundException
  -
  -     {
  -
  +     public static List findClassesThatExtend(Class[] superClasses)
  +             throws IOException, ClassNotFoundException {
                return findClassesThatExtend(superClasses, false);
  -
        }
  -
  -
  -
        /************************************************************
  -
  +     
         *  Find classes in the provided path(s)/jar(s) that extend the class(es).
  -
  +     
         *
  -
  +     
         *@param  superClasses                Description of Parameter
  -
  +     
         *@param  innerClasses                indicate whether to include inner classes
  -
  +     
         *      in the search
  -
  +     
         *@return                             ArrayList containing discovered classes.
  -
  +     
         *@exception  IOException
  -
  +     
         *@exception  ClassNotFoundException
  -
  +     
         ***********************************************************/
  -
  -      private static String[] addJarsInPath(String[] paths)
  -      {
  +     private static String[] addJarsInPath(String[] paths) {
                Set fullList = new HashSet();
                for (int i = 0; i < paths.length; i++) {
                        fullList.add(paths[i]);
  -                     if(!paths[i].endsWith(".jar"))
  -                     {
  +                     if (!paths[i].endsWith(".jar")) {
                                File dir = new File(paths[i]);
  -                             if(dir.exists() && dir.isDirectory())
  -                             {
  -                                     String[] jars = dir.list(new FilenameFilter(){
  -                                             public boolean accept(File f,String 
name)
  -                                             {
  -                                                     if(name.endsWith(".jar"))
  -                                                     {
  +                             if (dir.exists() && dir.isDirectory()) {
  +                                     String[] jars = dir.list(new FilenameFilter() {
  +                                             public boolean accept(File f, String 
name) {
  +                                                     if (name.endsWith(".jar")) {
                                                                return true;
                                                        }
                                                        return false;
                                                }
                                        });
  -                                     for (int x = 0; x < jars.length; x++)
  -                                     {
  +                                     for (int x = 0; x < jars.length; x++) {
                                                fullList.add(jars[x]);
                                        }
                                }
                        }
                }
  -             return (String[])fullList.toArray(new String[0]);
  -      }
  -
  -
  -
  -     public static List findClassesThatExtend(Class[] superClasses, boolean 
innerClasses) throws IOException, ClassNotFoundException
  -
  -     {
  +             return (String[]) fullList.toArray(new String[0]);
  +     }
  +     public static List findClassesThatExtend(
  +             Class[] superClasses,
  +             boolean innerClasses)
  +             throws IOException, ClassNotFoundException {
                List listPaths = null;
                ArrayList listClasses = null;
                List listSuperClasses = null;
  -             String[] strPathsOrJars = JMeterUtils.split(JMeterUtils.getPropDefault(
  -                             "search_paths", ".;ApacheJMeter.jar"), ";");
  +             String[] strPathsOrJars =
  +                     JMeterUtils.split(
  +                             JMeterUtils.getPropDefault("search_paths", 
".;ApacheJMeter.jar"),
  +                             ";");
                strPathsOrJars = addJarsInPath(strPathsOrJars);
  -             if (catClass.isDebugEnabled())
  -             {
  -                     for (int k = 0; k < strPathsOrJars.length; k++)
  -                     {
  +             if (catClass.isDebugEnabled()) {
  +                     for (int k = 0; k < strPathsOrJars.length; k++) {
                                catClass.debug("strPathsOrJars : " + 
strPathsOrJars[k]);
                        }
                }
                listPaths = getClasspathMatches(strPathsOrJars);
  -             if (catClass.isDebugEnabled())
  -             {
  +             if (catClass.isDebugEnabled()) {
                        Iterator tIter = listPaths.iterator();
  -                     for (; tIter.hasNext(); )
  -                     {
  +                     for (; tIter.hasNext();) {
                                catClass.debug("listPaths : " + tIter.next());
                        }
                }
                listClasses = new ArrayList();
                listSuperClasses = new ArrayList();
  -             for (int i = 0; i < superClasses.length; i++)
  -             {
  +             for (int i = 0; i < superClasses.length; i++) {
                        listSuperClasses.add(superClasses[i].getName());
                }
                // first get all the classes
                findClassesInPaths(listPaths, listClasses);
  -             if (catClass.isDebugEnabled())
  -             {
  +             if (catClass.isDebugEnabled()) {
                        Iterator tIter = listClasses.iterator();
  -                     for (; tIter.hasNext(); )
  -                     {
  +                     for (; tIter.hasNext();) {
                                catClass.debug("listClasses : " + tIter.next());
                        }
                }
  -             List subClassList = findAllSubclasses(listSuperClasses, listClasses, 
innerClasses);
  -
  +             List subClassList =
  +                     findAllSubclasses(listSuperClasses, listClasses, innerClasses);
                return subClassList;
  -
        }
  -
  -
  -
  -
  -
        /************************************************************
  -
  +     
         *  Convenience method to <code>findClassesByInterface(String[], Class[],
  -
  +     
         *  boolean)</code> with option to include inner classes in the search set to
  -
  +     
         *  false
  -
  +     
         *
  -
  +     
         *@param  interfaces                  Array of interfaces to search for.
  -
  +     
         *@param  strPathsOrJars              paths and jars to search
  -
  +     
         *@return                             ArrayList containing discovered classes.
  -
  +     
         *@exception  IOException
  -
  +     
         *@exception  ClassNotFoundException  !ToDo (Exception description)
  -
  +     
         ***********************************************************/
  -
  -     public static ArrayList findClassesByInterface(String[] strPathsOrJars,
  -
  -                     Class[] interfaces) throws IOException, ClassNotFoundException
  -
  -     {
  -
  +     public static ArrayList findClassesByInterface(
  +             String[] strPathsOrJars,
  +             Class[] interfaces)
  +             throws IOException, ClassNotFoundException {
                return findClassesByInterface(strPathsOrJars, interfaces, false);
  -
        }
  -
  -
  -
        /************************************************************
  -
  +     
         *  Find classes in the provided path(s)/jar(s) that implement the
  -
  +     
         *  interface(s).
  -
  +     
         *
  -
  +     
         *@param  interfaces                  Array of interfaces to search for.
  -
  +     
         *@param  strPathsOrJars              paths and jars to search
  -
  +     
         *@param  innerClasses                Indicate whether the search includes
  -
  +     
         *      inner classes
  -
  +     
         *@return                             ArrayList containing discovered classes.
  -
  +     
         *@exception  IOException
  -
  +     
         *@exception  ClassNotFoundException
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     public static ArrayList findClassesByInterface(String[] strPathsOrJars, 
Class[] interfaces, boolean innerClasses) throws IOException, ClassNotFoundException
  -
  -     {
  -
  -
  -
  +     public static ArrayList findClassesByInterface(
  +             String[] strPathsOrJars,
  +             Class[] interfaces,
  +             boolean innerClasses)
  +             throws IOException, ClassNotFoundException {
                List listPaths = null;
  -
  -
  -
                ArrayList listClasses = null;
  -
  -
  -
                ArrayList listClassesWithInterface = null;
  -
  -
  -
                String strClassName = null;
  -
  -
  -
                Iterator iterClasses = null;
  -
  -
  -
                Class tempClass = null;
  -
  -
  -
                boolean foundIt;
  -
  -
  -
                int i;
  -
  -
  -
                listPaths = getClasspathMatches(strPathsOrJars);
  -
  -
  -
                listClasses = new ArrayList();
  -
  -
  -
                // first get all the classes
  -
  -
  -
                findClassesInPaths(listPaths, listClasses);
  -
  -
  -
                // then filter by the specified interfaces;
  -
  -
  -
                // if the array is null or empty, keep all classes
  -
  -
  -
  -             if (interfaces == null || interfaces.length == 0)
  -
  -             {
  -
  -
  -
  +             if (interfaces == null || interfaces.length == 0) {
                        listClassesWithInterface = listClasses;
  -
  -             }
  -
  -
  -
  -             else
  -
  -             {
  -
  -
  -
  +             } else {
                        // make a copy of the ArrayList, and remove all classes that
  -
  -
  -
                        // don't implement one of the interefaces
  -
  -
  -
  -                     listClassesWithInterface = (ArrayList)listClasses.clone();
  -
  -
  -
  +                     listClassesWithInterface = (ArrayList) listClasses.clone();
                        iterClasses = listClasses.iterator();
  -
  -
  -
  -                     while (iterClasses.hasNext())
  -
  -                     {
  -
  -
  -
  -                             strClassName = (String)iterClasses.next();
  -
  -
  -
  +                     while (iterClasses.hasNext()) {
  +                             strClassName = (String) iterClasses.next();
                                foundIt = false;
  -
  -
  -
                                // only check classes if they are not inner classes
  -
                                // or we intend to check for inner classes
  -
  -                             if ((strClassName.indexOf("$") == -1) || innerClasses)
  -
  -                             {
  -
  +                             if ((strClassName.indexOf("$") == -1) || innerClasses) 
{
                                        // might throw an exception, assume this is 
ignorable
  -
  -
  -
  -                                     try
  -
  -                                     {
  -
  -
  -
  +                                     try {
                                                tempClass = 
Class.forName(strClassName);
  -
  -
  -
  -                                             for (i = 0; i < interfaces.length; i++)
  -
  -                                             {
  -
  -
  -
  -                                                     if 
(classImplementsInterface(tempClass, interfaces[i]))
  -
  -                                                     {
  -
  -
  -
  +                                             for (i = 0; i < interfaces.length; 
i++) {
  +                                                     if 
(classImplementsInterface(tempClass, interfaces[i])) {
                                                                foundIt = true;
  -
  -
  -
                                                                break;
  -
                                                        }
  -
  -
  -
                                                }
  -
  -
  -
  -                                     }
  -
  -
  -
  -                                     catch (Throwable ignored)
  -
  -                                     {
  -
  -                                     }
  -
  -
  -
  +                                     } catch (Throwable ignored) {}
                                }
  -
  -
  -
  -                             if (!foundIt)
  -
  -                             {
  -
  -
  -
  +                             if (!foundIt) {
                                        listClassesWithInterface.remove(strClassName);
  -
                                }
  -
  -
  -
                        }
  -
  -
  -
                }
  -
  -
  -
                // listClassesWithInterface only contains classes that directly
  -
  -
  -
                // implement the interface(s);  to get all classes we need
  -
  -
  -
                // subclasses of these, too
  -
  -
  -
                return findAllSubclasses(listClassesWithInterface, listClasses, 
innerClasses);
  -
        }
  -
  -
  -
  -
  -
  -     private static List getClasspathMatches(String[] strPathsOrJars)
  -     {
  +     private static List getClasspathMatches(String[] strPathsOrJars) {
                ArrayList listPaths = null;
                StringTokenizer stPaths = null;
                String strPath = null;
                int i;
                listPaths = new ArrayList();
  -             stPaths = new StringTokenizer(System.getProperty("java.class.path"), 
System.getProperty("path.separator"));
  -             if (strPathsOrJars != null)
  -             {
  +             stPaths =
  +                     new StringTokenizer(
  +                             System.getProperty("java.class.path"),
  +                             System.getProperty("path.separator"));
  +             if (strPathsOrJars != null) {
                        strPathsOrJars = fixDotDirs(strPathsOrJars);
                        strPathsOrJars = fixSlashes(strPathsOrJars);
                        strPathsOrJars = fixEndingSlashes(strPathsOrJars);
                }
                // find all jar files or paths that end with strPathOrJar
  -             while (stPaths.hasMoreTokens())
  -             {
  -                     strPath = fixDotDir((String)stPaths.nextToken());
  +             while (stPaths.hasMoreTokens()) {
  +                     strPath = fixDotDir((String) stPaths.nextToken());
                        strPath = fixSlashes(strPath);
                        strPath = fixEndingSlashes(strPath);
  -                     if (strPathsOrJars == null)
  -                     {
  +                     if (strPathsOrJars == null) {
                                listPaths.add(strPath);
  -                     }
  -                     else
  -                     {
  -                             for (i = 0; i < strPathsOrJars.length; i++)
  -                             {
  -                                     if (catClass.isDebugEnabled())
  -                                     {
  +                     } else {
  +                             for (i = 0; i < strPathsOrJars.length; i++) {
  +                                     if (catClass.isDebugEnabled()) {
                                                catClass.debug("strPath(lower) : " + 
strPath.toLowerCase());
                                                catClass.debug("strPathsOrJars[" + i + 
"] : " + strPathsOrJars[i]);
                                        }
  -                                     if (strPath.endsWith(strPathsOrJars[i]))
  -                                     {
  +                                     if (strPath.endsWith(strPathsOrJars[i])) {
                                                catClass.debug("match!!!");
                                                listPaths.add(strPath);
                                        }
  @@ -625,704 +378,301 @@
                }
                return listPaths;
        }
  -
  -
  -     /************************************************************
  -
  +     
  +     /************************************************************   
         *  Get all interfaces that the class implements, including parent interfaces.
  -
  -      *  This keeps us from having to instantiate and check instanceof, which
  -
  -      *  wouldn't work anyway since instanceof requires a hard-coded class or
  -
  -      *  interface name.
  -
  -      *
  -
  -      *@param  theClass     the class to get interfaces for
  -
  -      *@param  hInterfaces  a Map to store the discovered interfaces in
  -
  +      *  This keeps us from having to instantiate and check instanceof, which       
 
  +      *  wouldn't work anyway since instanceof requires a hard-coded class or       
 
  +      *  interface name.     
  +      *      
  +      *@param  theClass     the class to get interfaces for  
  +      *@param  hInterfaces  a Map to store the discovered interfaces in      
         ***********************************************************/
  -
  -
  -
  -     private static void getAllInterfaces(Class theClass, Map hInterfaces)
  -
  -     {
  -
  -
  -
  +     private static void getAllInterfaces(Class theClass, Map hInterfaces) {
                Class[] interfaces = theClass.getInterfaces();
  -
  -
  -
  -             for (int i = 0; i < interfaces.length; i++)
  -
  -             {
  -
  -
  -
  +             for (int i = 0; i < interfaces.length; i++) {
                        hInterfaces.put(interfaces[i].getName(), interfaces[i]);
  -
  -
  -
                        getAllInterfaces(interfaces[i], hInterfaces);
  -
  -
  -
                }
  -
  -
  -
        }
  -
  -
  -
  -
  -
  -     private static String[] fixDotDirs(String[] paths)
  -     {
  -             for (int i = 0; i < paths.length; i++)
  -             {
  +     private static String[] fixDotDirs(String[] paths) {
  +             for (int i = 0; i < paths.length; i++) {
                        paths[i] = fixDotDir(paths[i]);
                }
                return paths;
        }
  -
  -     private static String fixDotDir(String path)
  -     {
  -             if (path != null && path.equals("."))
  -             {
  +     private static String fixDotDir(String path) {
  +             if (path != null && path.equals(".")) {
                        return System.getProperty("user.dir");
  -             }
  -             else
  -             {
  +             } else {
                        return path.trim();
                }
        }
  -
  -
  -
  -
  -
  -     private static String[] fixEndingSlashes(String[] strings)
  -
  -     {
  -
  +     private static String[] fixEndingSlashes(String[] strings) {
                String[] strNew = new String[strings.length];
  -
  -             for (int i = 0; i < strings.length; i++)
  -
  -             {
  -
  +             for (int i = 0; i < strings.length; i++) {
                        strNew[i] = fixEndingSlashes(strings[i]);
  -
                }
  -
                return strNew;
  -
        }
  -
  -
  -
  -     private static String fixEndingSlashes(String string)
  -
  -     {
  -
  -             if (string.endsWith("/") || string.endsWith("\\"))
  -
  -             {
  -
  +     private static String fixEndingSlashes(String string) {
  +             if (string.endsWith("/") || string.endsWith("\\")) {
                        string = string.substring(0, string.length() - 1);
  -
                        string = fixEndingSlashes(string);
  -
                }
  -
                return string;
  -
        }
  -
  -
  -
  -     private static String[] fixSlashes(String[] strings)
  -
  -     {
  -
  +     private static String[] fixSlashes(String[] strings) {
                String[] strNew = new String[strings.length];
  -
  -             for (int i = 0; i < strings.length; i++)
  -
  -             {
  -
  -                     strNew[i] = fixSlashes(strings[i])/*.toLowerCase()*/;
  -
  +             for (int i = 0; i < strings.length; i++) {
  +                     strNew[i] = fixSlashes(strings[i]) /*.toLowerCase()*/;
                }
  -
  -
  -
                return strNew;
  -
        }
  -
  -
  -
  -
  -
  -     private static String fixSlashes(String str)
  -
  -     {
  -
  -
  -
  +     private static String fixSlashes(String str) {
                // replace \ with /
  -
  -
  -
                str = str.replace('\\', '/');
  -
  -
  -
                // compress multiples into singles;
  -
  -
  -
                // do in 2 steps with dummy string
  -
  -
  -
                // to avoid infinte loop
  -
  -
  -
                str = replaceString(str, "//", "_____");
  -
  -
  -
                str = replaceString(str, "_____", "/");
  -
  -
  -
                return str;
  -
        }
  -
  -
  -
  -
  -
  -     private static String replaceString(String s, String strToFind, String 
strToReplace)
  -
  -     {
  -
  -
  -
  +     private static String replaceString(
  +             String s,
  +             String strToFind,
  +             String strToReplace) {
                int index;
  -
  -
  -
                int currentPos;
  -
  -
  -
                StringBuffer buffer = null;
  -
  -
  -
  -             if (s.indexOf(strToFind) == -1)
  -
  -             {
  -
  -
  -
  +             if (s.indexOf(strToFind) == -1) {
                        return s;
  -
                }
  -
  -
  -
                currentPos = 0;
  -
  -
  -
                buffer = new StringBuffer();
  -
  -
  -
  -             while (true)
  -
  -             {
  -
  -
  -
  +             while (true) {
                        index = s.indexOf(strToFind, currentPos);
  -
  -
  -
  -                     if (index == -1)
  -
  -                     {
  -
  -
  -
  +                     if (index == -1) {
                                break;
  -
                        }
  -
  -
  -
                        buffer.append(s.substring(currentPos, index));
  -
  -
  -
                        buffer.append(strToReplace);
  -
  -
  -
                        currentPos = index + strToFind.length();
  -
  -
  -
                }
  -
  -
  -
                buffer.append(s.substring(currentPos));
  -
  -
  -
                return buffer.toString();
  -
        }
  -
  -
  -
  -
  -
        /************************************************************
  -
  +     
         *  Determine if the class implements the interface.
  -
  +     
         *
  -
  +     
         *@param  theClass      the class to check
  -
  +     
         *@param  theInterface  the interface to look for
  -
  +     
         *@return               boolean true if it implements
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     private static boolean classImplementsInterface(Class theClass, Class 
theInterface)
  -
  -     {
  -
  -
  -
  +     private static boolean classImplementsInterface(
  +             Class theClass,
  +             Class theInterface) {
                HashMap mapInterfaces = new HashMap();
  -
  -
  -
                String strKey = null;
  -
  -
  -
                // pass in the map by reference since the method is recursive
  -
  -
  -
                getAllInterfaces(theClass, mapInterfaces);
  -
  -
  -
                Iterator iterInterfaces = mapInterfaces.keySet().iterator();
  -
  -
  -
  -             while (iterInterfaces.hasNext())
  -
  -             {
  -
  -
  -
  -                     strKey = (String)iterInterfaces.next();
  -
  -
  -
  -                     if (mapInterfaces.get(strKey) == theInterface)
  -
  -                     {
  -
  -
  -
  +             while (iterInterfaces.hasNext()) {
  +                     strKey = (String) iterInterfaces.next();
  +                     if (mapInterfaces.get(strKey) == theInterface) {
                                return true;
  -
                        }
  -
  -
  -
                }
  -
  -
  -
                return false;
  -
        }
  -
  -
  -
        /************************************************************
  -
  +     
         *  Convenience method for <code>findAllSubclasses(List, List, boolean)</code>
  -
  +     
         *  with the option to include inner classes in the search set to false
  -
  +     
         *
  -
  +     
         *@param  listSuperClasses  the base classes to find subclasses for
  -
  +     
         *@param  listAllClasses    the collection of classes to search in
  -
  +     
         *@return                   ArrayList of the subclasses
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     private static ArrayList findAllSubclasses(List listSuperClasses, List 
listAllClasses)
  -
  -     {
  -
  +     private static ArrayList findAllSubclasses(
  +             List listSuperClasses,
  +             List listAllClasses) {
                return findAllSubclasses(listSuperClasses, listAllClasses, false);
  -
        }
  -
  -
  -
        /************************************************************
  -
  +     
         *  Finds all classes that extend the classes in the listSuperClasses
  -
  +     
         *  ArrayList, searching in the listAllClasses ArrayList.
  -
  +     
         *
  -
  +     
         *@param  listSuperClasses  the base classes to find subclasses for
  -
  +     
         *@param  listAllClasses    the collection of classes to search in
  -
  +     
         *@param  innerClasses      indicate whether to include inner classes in the
  -
  +     
         *      search
  -
  +     
         *@return                   ArrayList of the subclasses
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     private static ArrayList findAllSubclasses(List listSuperClasses, List 
listAllClasses, boolean innerClasses)
  -
  -     {
  -
  -
  -
  +     private static ArrayList findAllSubclasses(
  +             List listSuperClasses,
  +             List listAllClasses,
  +             boolean innerClasses) {
                Iterator iterClasses = null;
  -
  -
  -
                ArrayList listSubClasses = null;
  -
  -
  -
                String strClassName = null;
  -
  -
  -
                Class tempClass = null;
  -
  -
  -
                listSubClasses = new ArrayList();
  -
  -
  -
                iterClasses = listSuperClasses.iterator();
  -
  -
  -
  -             while (iterClasses.hasNext())
  -
  -             {
  -
  -
  -
  -                     strClassName = (String)iterClasses.next();
  -
  -
  -
  +             while (iterClasses.hasNext()) {
  +                     strClassName = (String) iterClasses.next();
                        // only check classes if they are not inner classes
  -
                        // or we intend to check for inner classes
  -
  -                     if ((strClassName.indexOf("$") == -1) || innerClasses)
  -
  -                     {
  -
  +                     if ((strClassName.indexOf("$") == -1) || innerClasses) {
                                // might throw an exception, assume this is ignorable
  -
  -
  -
  -                             try
  -
  -                             {
  -
  -
  -
  +                             try {
                                        tempClass = Class.forName(strClassName);
  -
  -
  -
  -                                     findAllSubclassesOneClass(tempClass, 
listAllClasses, listSubClasses, innerClasses);
  -
  -                                     // call by reference - recursive
  -
  -
  -
  -                             }
  -
  -
  -
  -                             catch (Throwable ignored)
  -
  -                             {
  -
  -                             }
  -
  -
  -
  +                                     findAllSubclassesOneClass(
  +                                             tempClass,
  +                                             listAllClasses,
  +                                             listSubClasses,
  +                                             innerClasses);
  +                                     // call by reference - recursive
  +                             } catch (Throwable ignored) {}
                        }
  -
  -
  -
                }
  -
  -
  -
                return listSubClasses;
  -
        }
  -
  -
  -
        /************************************************************
  -
  +     
         *  Convenience method for <code>findAllSubclassesOneClass(Class, List, List,
  -
  +     
         *  boolean)</code> with option to include inner classes in the search set to
  -
  +     
         *  false
  -
  +     
         *
  -
  +     
         *@param  theClass        the parent class
  -
  +     
         *@param  listAllClasses  the collection of classes to search in
  -
  +     
         *@param  listSubClasses  the collection of discovered subclasses
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     private static void findAllSubclassesOneClass(Class theClass,
  -
  -                     List listAllClasses, List listSubClasses)
  -
  -     {
  -
  -             findAllSubclassesOneClass(theClass, listAllClasses,
  -
  -                             listSubClasses, false);
  -
  +     private static void findAllSubclassesOneClass(
  +             Class theClass,
  +             List listAllClasses,
  +             List listSubClasses) {
  +             findAllSubclassesOneClass(theClass, listAllClasses, listSubClasses, 
false);
        }
  -
  -
  -
        /************************************************************
  -
  +     
         *  Finds all classes that extend the class, searching in the listAllClasses
  -
  +     
         *  ArrayList.
  -
  +     
         *
  -
  +     
         *@param  theClass        the parent class
  -
  +     
         *@param  listAllClasses  the collection of classes to search in
  -
  +     
         *@param  listSubClasses  the collection of discovered subclasses
  -
  +     
         *@param  innerClasses    indicates whether inners classes should be included
  -
  +     
         *      in the search
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     private static void findAllSubclassesOneClass(Class theClass,
  -
  -                     List listAllClasses, List listSubClasses, boolean innerClasses)
  -
  -     {
  -
  +     private static void findAllSubclassesOneClass(
  +             Class theClass,
  +             List listAllClasses,
  +             List listSubClasses,
  +             boolean innerClasses) {
                Iterator iterClasses = null;
  -
                String strClassName = null;
  -
                String strSuperClassName = null;
  -
                Class c = null;
  -
                Class cParent = null;
  -
                boolean bIsSubclass = false;
  -
                strSuperClassName = theClass.getName();
  -
                iterClasses = listAllClasses.iterator();
  -
  -             while (iterClasses.hasNext())
  -
  -             {
  -
  -                     strClassName = (String)iterClasses.next();
  -
  +             while (iterClasses.hasNext()) {
  +                     strClassName = (String) iterClasses.next();
                        // only check classes if they are not inner classes
  -
                        // or we intend to check for inner classes
  -
  -                     if ((strClassName.indexOf("$") == -1) || innerClasses)
  -
  -                     {
  -
  +                     if ((strClassName.indexOf("$") == -1) || innerClasses) {
                                // might throw an exception, assume this is ignorable
  -
  -                             try
  -
  -                             {
  -
  -                                               // Class.forName() doesn't like nulls
  -                                               if(strClassName == null) continue;
  -
  +                             try {
  +                                     // Class.forName() doesn't like nulls
  +                                     if (strClassName == null)
  +                                             continue;
                                        c = Class.forName(strClassName);
  -
  -                                     if (!c.isInterface() && 
!Modifier.isAbstract(c.getModifiers()))
  -
  -                                     {
  -
  +                                     if (!c.isInterface() && 
!Modifier.isAbstract(c.getModifiers())) {
                                                bIsSubclass = 
theClass.isAssignableFrom(c);
  -
  -                                     }
  -
  -                                     else
  -
  -                                     {
  -
  +                                     } else {
                                                bIsSubclass = false;
  -
                                        }
  -
  -                                     if (bIsSubclass)
  -
  -                                     {
  -
  +                                     if (bIsSubclass) {
                                                listSubClasses.add(strClassName);
  -
                                        }
  -
  -                             }
  -
  -                             catch (Throwable ignored)
  -
  -                             {
  -
  -                             }
  -
  +                             } catch (Throwable ignored) {}
                        }
  -
                }
  -
        }
  -
  -
  -
        /************************************************************
  -
  +     
         *  Converts a class file from the text stored in a Jar file to a version that
  -
  +     
         *  can be used in Class.forName().
  -
  +     
         *
  -
  +     
         *@param  strClassName  the class name from a Jar file
  -
  +     
         *@return               String the Java-style dotted version of the name
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     private static String fixClassName(String strClassName)
  -
  -     {
  -
  -
  -
  +     private static String fixClassName(String strClassName) {
                strClassName = strClassName.replace('\\', '.');
  -
  -
  -
                strClassName = strClassName.replace('/', '.');
  -
  -
  -
                strClassName = strClassName.substring(0, strClassName.length() - 6);
  -
                // remove ".class"
  -
  -
  -
                return strClassName;
  -
        }
  -
  -
  -
  -
  -
        /************************************************************
  -
  +     
         *  Description of the Method
  -
  +     
         *
  -
  +     
         *@param  strPath          Description of Parameter
  -
  +     
         *@param  listClasses      Description of Parameter
  -
  +     
         *@exception  IOException  Description of Exception
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     private static void findClassesInOnePath(String strPath, List listClasses) 
throws IOException
  -     {
  +     private static void findClassesInOnePath(String strPath, List listClasses)
  +             throws IOException {
                File file = null;
                String strPathName = null;
                ZipFile zipFile = null;
  @@ -1330,249 +680,139 @@
                Enumeration entries = null;
                String strEntry = null;
                file = new File(strPath);
  -             if (file.isDirectory())
  -             {
  +             if (file.isDirectory()) {
                        findClassesInPathsDir(strPath, file, listClasses);
  -             }
  -             else if (file.exists())
  -             {
  -                     zipFile = new ZipFile(file);
  -                     entries = zipFile.entries();
  -                     while (entries.hasMoreElements())
  -                     {
  -                             strEntry = entries.nextElement().toString();
  -                             if (strEntry.endsWith(".class"))
  -                             {
  -                                     listClasses.add(fixClassName(strEntry));
  +             } else
  +                     if (file.exists()) {
  +                             zipFile = new ZipFile(file);
  +                             entries = zipFile.entries();
  +                             while (entries.hasMoreElements()) {
  +                                     strEntry = entries.nextElement().toString();
  +                                     if (strEntry.endsWith(".class")) {
  +                                             
listClasses.add(fixClassName(strEntry));
  +                                     }
                                }
                        }
  -             }
        }
  -
  -
  -
  -
  -
        /************************************************************
  -
  +     
         *  Description of the Method
  -
  +     
         *
  -
  +     
         *@param  listPaths        Description of Parameter
  -
  +     
         *@param  listClasses      Description of Parameter
  -
  +     
         *@exception  IOException  Description of Exception
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     private static void findClassesInPaths(List listPaths, List listClasses) 
throws IOException
  -
  -     {
  -
  -
  -
  +     private static void findClassesInPaths(List listPaths, List listClasses)
  +             throws IOException {
                Iterator iterPaths = listPaths.iterator();
  -
  -
  -
  -             while (iterPaths.hasNext())
  -
  -             {
  -
  -
  -
  -                     findClassesInOnePath((String)iterPaths.next(), listClasses);
  -
  -
  -
  +             while (iterPaths.hasNext()) {
  +                     findClassesInOnePath((String) iterPaths.next(), listClasses);
                }
  -
  -
  -
        }
  -
  -
  -
  -
  -
        /************************************************************
  -
  +     
         *  Description of the Method
  -
  +     
         *
  -
  +     
         *@param  strPathElement   Description of Parameter
  -
  +     
         *@param  dir              Description of Parameter
  -
  +     
         *@param  listClasses      Description of Parameter
  -
  +     
         *@exception  IOException  Description of Exception
  -
  +     
         ***********************************************************/
  -
  -
  -
  -     private static void findClassesInPathsDir(String strPathElement, File dir, 
List listClasses) throws IOException
  -     {
  +     private static void findClassesInPathsDir(
  +             String strPathElement,
  +             File dir,
  +             List listClasses)
  +             throws IOException {
                File file = null;
                String[] list = dir.list();
  -             for (int i = 0; i < list.length; i++)
  -             {
  +             for (int i = 0; i < list.length; i++) {
                        file = new File(dir, list[i]);
  -                     if (file.isDirectory())
  -                     {
  +                     if (file.isDirectory()) {
                                findClassesInPathsDir(strPathElement, file, 
listClasses);
  -                     }
  -                     else if (file.exists() && (file.length() != 0) && 
list[i].endsWith(".class"))
  -                     {
  -                             
listClasses.add(file.getPath().substring(strPathElement.length() + 1,
  -                                             
file.getPath().lastIndexOf(".")).replace(File.separator.charAt(0), '.'));
  -                     }
  +                     } else
  +                             if (file.exists() && (file.length() != 0) && 
list[i].endsWith(".class")) {
  +                                     listClasses.add(
  +                                             file
  +                                                     .getPath()
  +                                                     
.substring(strPathElement.length() + 1, file.getPath().lastIndexOf("."))
  +                                                     
.replace(File.separator.charAt(0), '.'));
  +                             }
                }
        }
  -
  -
  -
        /************************************************************
  -
  +     
         *  !ToDo (Class description)
  -
  +     
         *
  -
  +     
         *@author     $Author: mstover1 $
  -
  -      *@created    $Date: 2002/04/29 17:08:14 $
  -
  -      *@version    $Revision: 1.3 $
  -
  +     
  +      *@created    $Date: 2002/05/01 01:39:40 $
  +     
  +      *@version    $Revision: 1.4 $
  +     
         ***********************************************************/
  -
  -     public static class Test extends TestCase
  -
  -     {
  -
  +     public static class Test extends TestCase {
                /************************************************************
  -
  +             
                 *  !ToDo (Constructor description)
  -
  +             
                 *
  -
  +             
                 *@param  name  !ToDo (Parameter description)
  -
  +             
                 ***********************************************************/
  -
  -             public Test(String name)
  -
  -             {
  -
  +             public Test(String name) {
                        super(name);
  -
                }
  -
  -
  -
                // For a given testPath, get the name of the classes in the path and 
its
  -
                // subpaths. Append the first class name found to the testPath to 
ensure
  -
                // that the file is found.
  -
                /************************************************************
  -
  +             
                 *  !ToDo
  -
  +             
                 ***********************************************************/
  -
  -             public void testFindClassesInPaths()
  -
  -             {
  -
  +             public void testFindClassesInPaths() {
                        String testPath = System.getProperty("user.dir") + 
"/bin/classes";
  -
                        List listPaths = new ArrayList();
  -
                        ArrayList listClasses = new ArrayList();
  -
                        // listPaths will contain the path/jars where all classes will 
be listed
  -
                        listPaths.add(testPath);
  -
  -                     try
  -
  -                     {
  -
  +                     try {
                                findClassesInPaths(listPaths, listClasses);
  -
  -                     }
  -
  -                     catch (IOException e)
  -
  -                     {
  -
  +                     } catch (IOException e) {
                                fail("IOException thrown");
  -
                        }
  -
                        Iterator iter = listClasses.iterator();
  -
  -                     if (iter.hasNext())
  -
  -                     {
  -
  +                     if (iter.hasNext()) {
                                String fullname = null;
  -
                                // check if file exist
  -
                                String fileSeparator = 
System.getProperty("file.separator");
  -
  -                             String filename = (String)iter.next();
  -
  +                             String filename = (String) iter.next();
                                filename = filename.replace('.', 
fileSeparator.charAt(0));
  -
  -                             if (testPath.endsWith(fileSeparator))
  -
  -                             {
  -
  +                             if (testPath.endsWith(fileSeparator)) {
                                        fullname = testPath + filename + ".class";
  -
  -                             }
  -
  -                             else
  -
  -                             {
  -
  +                             } else {
                                        fullname = testPath + fileSeparator + filename 
+ ".class";
  -
                                }
  -
                                File file = new File(fullname);
  -
                                this.assertTrue(fullname + " is not a file", 
file.isFile());
  -
  -                     }
  -
  -                     else
  -
  -                     {
  -
  +                     } else {
                                // if testPath is empty, fail the test
  -
  -                             fail(testPath +
  -
  -                                             " is empty. Please choose a path which 
has at least one file");
  -
  +                             fail(testPath + " is empty. Please choose a path which 
has at least one file");
                        }
  -
                }
  -
        }
  -
  -}
  -
  -
  -
  +}
  \ No newline at end of file
  
  
  
  1.3       +18 -45    jakarta-jmeter/src_1/org/apache/jmeter/util/SearchByClass.java
  
  Index: SearchByClass.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/util/SearchByClass.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SearchByClass.java        30 Apr 2002 02:41:32 -0000      1.2
  +++ SearchByClass.java        1 May 2002 01:39:40 -0000       1.3
  @@ -1,7 +1,5 @@
   package org.apache.jmeter.util;
  -
   import java.util.*;
  -
   /**
    * <p>Title: </p>
    * <p>Description: </p>
  @@ -10,69 +8,44 @@
    * @author unascribed
    * @version 1.0
    */
  -
  -public class SearchByClass implements ListedHashTreeVisitor
  -{
  +public class SearchByClass implements ListedHashTreeVisitor {
        List objectsOfClass = new LinkedList();
        Map subTrees = new HashMap();
        Class searchClass = null;
  -
  -     public SearchByClass()
  -     {
  -     }
  -
  -     public SearchByClass(Class searchClass)
  -     {
  +     public SearchByClass() {}
  +     public SearchByClass(Class searchClass) {
                this.searchClass = searchClass;
        }
  -
  -     public Collection getSearchResults()
  -     {
  +     public Collection getSearchResults() {
                return objectsOfClass;
        }
  -
  -     public ListedHashTree getSubTree(Object root)
  -     {
  -             return (ListedHashTree)subTrees.get(root);
  +     public ListedHashTree getSubTree(Object root) {
  +             return (ListedHashTree) subTrees.get(root);
        }
  -
  -     public void addNode(Object node,ListedHashTree subTree)
  -     {
  -             if(node.getClass().isAssignableFrom(searchClass))
  -             {
  +     public void addNode(Object node, ListedHashTree subTree) {
  +             if (node.getClass().isAssignableFrom(searchClass)) {
                        objectsOfClass.add(node);
                        ListedHashTree tree = new ListedHashTree(node);
  -                     tree.set(node,subTree);
  -                     subTrees.put(node,tree);
  +                     tree.set(node, subTree);
  +                     subTrees.put(node, tree);
                }
        }
  -
  -     public static class Test extends junit.framework.TestCase
  -     {
  -             public Test(String name)
  -             {
  +     public static class Test extends junit.framework.TestCase {
  +             public Test(String name) {
                        super(name);
                }
  -
  -             public void testSearch() throws Exception
  -             {
  +             public void testSearch() throws Exception {
                        ListedHashTree tree = new ListedHashTree();
                        SearchByClass searcher = new SearchByClass(Integer.class);
                        String one = "one";
                        String two = "two";
                        Integer o = new Integer(1);
  -                     tree.add(one,o);
  -                     tree.get(one).add(o,two);
  +                     tree.add(one, o);
  +                     tree.get(one).add(o, two);
                        tree.traverse(searcher);
  -                     assertEquals(1,searcher.getSearchResults().size());
  +                     assertEquals(1, searcher.getSearchResults().size());
                }
        }
  -
  -     public void subtractNode()
  -     {
  -     }
  -
  -     public void processPath()
  -     {
  -     }
  +     public void subtractNode() {}
  +     public void processPath() {}
   }
  
  
  
  1.6       +2 -13     
jakarta-jmeter/src_1/org/apache/jmeter/visualizers/AssertionVisualizer.java
  
  Index: AssertionVisualizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/visualizers/AssertionVisualizer.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AssertionVisualizer.java  29 Apr 2002 17:08:15 -0000      1.5
  +++ AssertionVisualizer.java  1 May 2002 01:39:40 -0000       1.6
  @@ -72,7 +72,7 @@
    * Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:15 $
  + *@created   $Date: 2002/05/01 01:39:40 $
    *@version   1.0
    ***************************************/
   
  @@ -103,18 +103,6 @@
        /****************************************
         * !ToDo (Method description)
         *
  -      *@return   !ToDo (Return description)
  -      ***************************************/
  -     public TestElement createTestElement()
  -     {
  -             ResultCollector collector = new ResultCollector();
  -             configureTestElement(collector);
  -             return collector;
  -     }
  -
  -     /****************************************
  -      * !ToDo (Method description)
  -      *
         *@param sample  !ToDo (Parameter description)
         ***************************************/
        public void add(SampleResult sample)
  @@ -177,6 +165,7 @@
   
                // NAME
                mainPanel.add(getNamePanel());
  +             mainPanel.add(getFilePanel());
   
                // TEXTAREA LABEL
                JLabel textAreaLabel = new 
JLabel(JMeterUtils.getResString("assertion_textarea_label"));
  
  
  
  1.5       +2 -2      
jakarta-jmeter/src_1/org/apache/jmeter/visualizers/GraphAccumVisualizer.java
  
  Index: GraphAccumVisualizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/visualizers/GraphAccumVisualizer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- GraphAccumVisualizer.java 29 Apr 2002 17:08:15 -0000      1.4
  +++ GraphAccumVisualizer.java 1 May 2002 01:39:40 -0000       1.5
  @@ -72,7 +72,7 @@
    *
    *@author    Khor Soon Hin
    *@created   2001/08/11
  - *@version   $Revision: 1.4 $ $Date: 2002/04/29 17:08:15 $
  + *@version   $Revision: 1.5 $ $Date: 2002/05/01 01:39:40 $
    ***************************************/
   public class GraphAccumVisualizer extends AbstractVisualizer
                 implements ImageVisualizer, GraphAccumListener,Clearable
  @@ -229,8 +229,8 @@
                panelTitleLabel.setFont(new Font(curFont.getFontName(), 
curFont.getStyle(), curFontSize));
                mainPanel.add(panelTitleLabel);
   
  -
                mainPanel.add(this.getNamePanel());
  +             mainPanel.add(getFilePanel());
   
                JScrollPane graphScrollPanel = new
                                JScrollPane(graph, 
JScrollPane.VERTICAL_SCROLLBAR_NEVER,
  
  
  
  1.5       +4 -3      
jakarta-jmeter/src_1/org/apache/jmeter/visualizers/SplineVisualizer.java
  
  Index: SplineVisualizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/visualizers/SplineVisualizer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SplineVisualizer.java     29 Apr 2002 17:08:15 -0000      1.4
  +++ SplineVisualizer.java     1 May 2002 01:39:40 -0000       1.5
  @@ -70,7 +70,7 @@
    * GraphVisualizer.
    *
    *@author    <a href="mailto:[EMAIL PROTECTED]";>Jean-Pierre Norguet</a>
  - *@created   $Date: 2002/04/29 17:08:15 $
  + *@created   $Date: 2002/05/01 01:39:40 $
    *@version   0.9.1
    ***************************************/
   public class SplineVisualizer extends AbstractVisualizer implements ImageVisualizer,
  @@ -178,6 +178,7 @@
   
                // NAME
                mainPanel.add(getNamePanel());
  +             mainPanel.add(getFilePanel());
                maximumLabel = new 
JLabel(JMeterUtils.getResString("spline_visualizer_maximum"));
                maximumLabel.setForeground(MAXIMUM_COLOR);
                maximumLabel.setBackground(backColor);
  @@ -358,8 +359,8 @@
         * Component showing a Spline curve.
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/04/29 17:08:15 $
  -      *@version   $Revision: 1.4 $
  +      *@created   $Date: 2002/05/01 01:39:40 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        public class SplineGraph extends JComponent
        {
  
  
  
  1.5       +8 -7      
jakarta-jmeter/src_1/org/apache/jmeter/visualizers/StatVisualizer.java
  
  Index: StatVisualizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/visualizers/StatVisualizer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StatVisualizer.java       29 Apr 2002 17:08:15 -0000      1.4
  +++ StatVisualizer.java       1 May 2002 01:39:40 -0000       1.5
  @@ -81,7 +81,7 @@
    * Company: Apache Foundation
    *
    *@author    James Boutcher
  - *@created   $Date: 2002/04/29 17:08:15 $
  + *@created   $Date: 2002/05/01 01:39:40 $
    *@version   1.0
    ***************************************/
   
  @@ -365,6 +365,7 @@
                panelTitleLabel.setFont(new Font(curFont.getFontName(), 
curFont.getStyle(), curFontSize));
   
                mainPanel.add(panelTitleLabel);
  +             mainPanel.add(getFilePanel());
   
                myStatTableModel = new StatTableModel();
   
  @@ -393,8 +394,8 @@
    * support our dynamically-sizing TableModel for this visualizer.
    *
    *@author    $Author: mstover1 $
  - *@created   $Date: 2002/04/29 17:08:15 $
  - *@version   $Revision: 1.4 $
  + *@created   $Date: 2002/05/01 01:39:40 $
  + *@version   $Revision: 1.5 $
    ***************************************/
   
   class SortFilterModel extends AbstractTableModel
  @@ -579,8 +580,8 @@
         * !ToDo (Class description)
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/04/29 17:08:15 $
  -      *@version   $Revision: 1.4 $
  +      *@created   $Date: 2002/05/01 01:39:40 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        private class Row implements Comparable
        {
  @@ -629,8 +630,8 @@
    * Class which implements the model for our main table in this visualizer.
    *
    *@author    $Author: mstover1 $
  - *@created   $Date: 2002/04/29 17:08:15 $
  - *@version   $Revision: 1.4 $
  + *@created   $Date: 2002/05/01 01:39:40 $
  + *@version   $Revision: 1.5 $
    ***************************************/
   
   class StatTableModel extends AbstractTableModel
  
  
  
  1.5       +2 -1      
jakarta-jmeter/src_1/org/apache/jmeter/visualizers/TableVisualizer.java
  
  Index: TableVisualizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/visualizers/TableVisualizer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TableVisualizer.java      29 Apr 2002 17:08:15 -0000      1.4
  +++ TableVisualizer.java      1 May 2002 01:39:40 -0000       1.5
  @@ -72,7 +72,7 @@
    *
    *@author    <a href="mailto:[EMAIL PROTECTED]";>Alf Hogemark</a>
    *@created   March 10, 2002
  - *@version   $Revision: 1.4 $
  + *@version   $Revision: 1.5 $
    ***************************************/
   public class TableVisualizer extends AbstractVisualizer
                 implements GraphListener, Clearable
  @@ -193,6 +193,7 @@
   
                // NAME
                mainPanel.add(getNamePanel());
  +             mainPanel.add(getFilePanel());
   
                // Set up the table itself
                table = new JTable(model);
  
  
  
  1.6       +5 -42     
jakarta-jmeter/src_1/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
  
  Index: ViewResultsFullVisualizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ViewResultsFullVisualizer.java    29 Apr 2002 17:08:15 -0000      1.5
  +++ ViewResultsFullVisualizer.java    1 May 2002 01:39:40 -0000       1.6
  @@ -70,6 +70,7 @@
   import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
   import org.apache.jmeter.testelement.TestElement;
   import org.apache.jmeter.util.JMeterUtils;
  +import org.apache.jmeter.gui.util.VerticalLayout;
   
   /****************************************
    * Allows the tester to view the textual response from sampling an Entry. This
  @@ -78,63 +79,24 @@
    *
    *@author    Khor Soon Hin
    *@created   2001/07/25
  - *@version   $Revision: 1.5 $ $Date: 2002/04/29 17:08:15 $
  + *@version   $Revision: 1.6 $ $Date: 2002/05/01 01:39:40 $
    ***************************************/
   public class ViewResultsFullVisualizer extends ViewResultsVisualizer implements
                TreeSelectionListener
   {
   
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        public final static Color SERVER_ERROR_COLOR = Color.red;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        public final static Color CLIENT_ERROR_COLOR = Color.blue;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        public final static Color REDIRECT_COLOR = Color.green;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected DefaultMutableTreeNode root;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected DefaultTreeModel treeModel;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected GridBagLayout gridBag;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected GridBagConstraints gbc;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected JPanel resultPanel;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected JScrollPane treePane;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected JScrollPane resultPane;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected JSplitPane treeSplitPane;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected JTree jTree;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
        protected int childIndex;
   
        private static Category catClass =
  @@ -374,7 +336,7 @@
         ***************************************/
        protected void init()
        {
  -             this.setLayout(new GridLayout(1, 1));
  +             this.setLayout(new BorderLayout());
                catClass.debug("Start : init1");
                SampleResult rootSampleResult = new SampleResult();
                rootSampleResult.setSampleLabel("Root");
  @@ -391,7 +353,8 @@
                resultPane = new JScrollPane(resultPanel);
                treeSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
                                treePane, resultPane);
  -             add(treeSplitPane);
  +             add(getFilePanel(),BorderLayout.NORTH);
  +             add(treeSplitPane,BorderLayout.CENTER);
                catClass.debug("End : init1");
        }
   }
  
  
  
  1.6       +3 -19     
jakarta-jmeter/src_1/org/apache/jmeter/visualizers/ViewResultsVisualizer.java
  
  Index: ViewResultsVisualizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/visualizers/ViewResultsVisualizer.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ViewResultsVisualizer.java        29 Apr 2002 17:08:15 -0000      1.5
  +++ ViewResultsVisualizer.java        1 May 2002 01:39:40 -0000       1.6
  @@ -73,15 +73,14 @@
    * "Continue" button.
    *
    *@author    $Author: mstover1 $
  - *@created   $Date: 2002/04/29 17:08:15 $
  - *@version   $Revision: 1.5 $ $Date: 2002/04/29 17:08:15 $
  + *@created   $Date: 2002/05/01 01:39:40 $
  + *@version   $Revision: 1.6 $ $Date: 2002/05/01 01:39:40 $
    ***************************************/
   public class ViewResultsVisualizer extends AbstractVisualizer implements 
ActionListener, Clearable
   {
        private JTextArea display;
        private JButton next;
        private JTextField label;
  -     private ResultCollector model;
   
        /****************************************
         * !ToDo (Constructor description)
  @@ -106,22 +105,6 @@
                }
        }
   
  -     /**
  -      * Method getModel.
  -      * @return ResultCollector
  -      */
  -     protected ResultCollector getModel()
  -     {
  -             return model;
  -     }
  -
  -     public TestElement createTestElement()
  -     {
  -             model = new ResultCollector();
  -             configureTestElement(model);
  -             return model;
  -     }
  -
        public String getStaticLabel()
        {
                return JMeterUtils.getResString("view_results_title");
  @@ -181,6 +164,7 @@
   
                // NAME
                mainPanel.add(getNamePanel());
  +             mainPanel.add(getFilePanel());
   
                // INNER PANEL
                JPanel innerPanel = new JPanel();
  
  
  
  1.7       +40 -43    
jakarta-jmeter/src_1/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java
  
  Index: AbstractVisualizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AbstractVisualizer.java   30 Apr 2002 02:41:32 -0000      1.6
  +++ AbstractVisualizer.java   1 May 2002 01:39:41 -0000       1.7
  @@ -4,6 +4,8 @@
   import javax.swing.JPanel;
   import javax.swing.JPopupMenu;
   import javax.swing.event.*;
  +
  +import org.apache.jmeter.exceptions.IllegalUserActionException;
   import org.apache.jmeter.gui.JMeterGUIComponent;
   import org.apache.jmeter.gui.NamePanel;
   import org.apache.jmeter.gui.util.MenuFactory;
  @@ -13,18 +15,20 @@
   import org.apache.jmeter.visualizers.Visualizer;
   import org.apache.jmeter.reporters.ResultCollector;
   import org.apache.jmeter.gui.util.FilePanel;
  +import org.apache.jmeter.gui.util.FileDialoger;
  +import org.apache.jmeter.util.JMeterUtils;
   
   /****************************************
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/30 02:41:32 $
  + *@created   $Date: 2002/05/01 01:39:41 $
    *@version   1.0
    ***************************************/
   
  -public abstract class AbstractVisualizer extends JPanel implements 
JMeterGUIComponent,
  -             Visualizer,ChangeListener
  -{
  +public abstract class AbstractVisualizer
  +     extends JPanel
  +     implements JMeterGUIComponent, Visualizer, ChangeListener {
   
        /****************************************
         * !ToDo (Field description)
  @@ -36,20 +40,21 @@
        /****************************************
         * !ToDo (Constructor description)
         ***************************************/
  -     public AbstractVisualizer()
  -     {
  +     public AbstractVisualizer() {
                namePanel = new NamePanel();
                filePanel = new FilePanel(this);
                setName(getStaticLabel());
        }
   
  -     protected NamePanel getNamePanel()
  -     {
  +     protected NamePanel getNamePanel() {
                return namePanel;
        }
   
  -     protected FilePanel getFilePanel()
  -     {
  +     protected ResultCollector getModel() {
  +             return collector;
  +     }
  +
  +     protected FilePanel getFilePanel() {
                return filePanel;
        }
   
  @@ -58,8 +63,7 @@
         *
         *@param name  !ToDo (Parameter description)
         ***************************************/
  -     public void setName(String name)
  -     {
  +     public void setName(String name) {
                super.setName(name);
                namePanel.setName(name);
        }
  @@ -69,18 +73,15 @@
         *
         *@return   !ToDo (Return description)
         ***************************************/
  -     public String getName()
  -     {
  +     public String getName() {
                return namePanel.getName();
        }
   
  -     public void setFile(String filename)
  -     {
  +     public void setFile(String filename) {
                filePanel.setFilename(filename);
        }
   
  -     public String getFile()
  -     {
  +     public String getFile() {
                return filePanel.getFilename();
        }
   
  @@ -89,15 +90,13 @@
         *
         *@return   !ToDo (Return description)
         ***************************************/
  -     public JPopupMenu createPopupMenu()
  -     {
  +     public JPopupMenu createPopupMenu() {
                return MenuFactory.getDefaultVisualizerMenu();
        }
   
  -     public void stateChanged(ChangeEvent e)
  -     {
  +     public void stateChanged(ChangeEvent e) {
                System.out.println("getting new collector");
  -             collector = (ResultCollector)createTestElement();
  +             collector = (ResultCollector) createTestElement();
        }
   
        /****************************************
  @@ -105,9 +104,8 @@
         *
         *@param element  !ToDo (Parameter description)
         ***************************************/
  -     public void configure(TestElement element)
  -     {
  -             setName((String)element.getProperty(TestElement.NAME));
  +     public void configure(TestElement element) {
  +             setName((String) element.getProperty(TestElement.NAME));
        }
   
        /****************************************
  @@ -115,27 +113,27 @@
         *
         *@return   !ToDo (Return description)
         ***************************************/
  -     public Collection getMenuCategories()
  -     {
  -             return Arrays.asList(new String[]{MenuFactory.LISTENERS});
  +     public Collection getMenuCategories() {
  +             return Arrays.asList(new String[] { MenuFactory.LISTENERS });
        }
   
  -     public TestElement createTestElement()
  -     {
  -             if(collector == null)
  -             {
  +     public TestElement createTestElement() {
  +             if (collector == null) {
                        collector = new ResultCollector();
                }
                configureTestElement(collector);
  -             try
  -             {
  -                     if(!getFile().equals(""))
  -                     {
  -                             collector.setFilename(getFile());
  +             try {
  +                     if (!getFile().equals("")) {
  +                             try {
  +                                     collector.setFilename(getFile());
  +                             }
  +                             catch (IllegalUserActionException e) {
  +                                     JMeterUtils.reportErrorToUser(e.getMessage());
  +                                     setFile("");
  +                             }
                        }
                }
  -             catch(IOException e)
  -             {
  +             catch (IOException e) {
                        e.printStackTrace();
                }
                return collector;
  @@ -146,11 +144,10 @@
         *
         *@param mc  !ToDo (Parameter description)
         ***************************************/
  -     protected void configureTestElement(AbstractListenerElement mc)
  -     {
  +     protected void configureTestElement(AbstractListenerElement mc) {
                mc.setProperty(TestElement.NAME, getName());
                mc.setProperty(TestElement.GUI_CLASS, this.getClass().getName());
                mc.setProperty(TestElement.TEST_CLASS, mc.getClass().getName());
                mc.setListener(this);
        }
  -}
  +}
  \ No newline at end of file
  
  
  

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

Reply via email to