mstover1    02/05/20 20:36:44

  Modified:    src/org/apache/jmeter/engine RemoteJMeterEngine.java
                        RemoteJMeterEngineImpl.java
               src/org/apache/jmeter/reporters FileReporter.java
               src_1/org/apache/jmeter NewDriver.java
               src_1/org/apache/jmeter/config/gui AbstractConfigGui.java
                        ArgumentsPanel.java LoginConfigGui.java
               src_1/org/apache/jmeter/engine RemoteJMeterEngine.java
                        RemoteJMeterEngineImpl.java
                        StandardJMeterEngine.java
               src_1/org/apache/jmeter/gui MainFrame.java
               src_1/org/apache/jmeter/gui/action EditCommand.java
               src_1/org/apache/jmeter/gui/tree JMeterTreeListener.java
               src_1/org/apache/jmeter/gui/util JMeterMenuBar.java
               src_1/org/apache/jmeter/protocol/ftp/config/gui
                        FtpConfigGui.java
               src_1/org/apache/jmeter/protocol/http/config/gui
                        UrlConfigGui.java
               src_1/org/apache/jmeter/protocol/http/control
                        CookieManager.java
               src_1/org/apache/jmeter/protocol/http/gui AuthPanel.java
                        CookiePanel.java HeaderPanel.java
               src_1/org/apache/jmeter/protocol/jdbc/config/gui
                        DbConfigGui.java PoolConfigGui.java
                        SqlConfigGui.java
               src_1/org/apache/jmeter/reporters FileReporter.java
               src_1/org/apache/jmeter/resources messages.properties
                        messages_ja.properties messages_no.properties
               src_1/org/apache/jmeter/threads TestCompiler.java
                        ThreadGroup.java
               src_1/org/apache/jmeter/util SearchByClass.java
  Added:       src_1/org/apache/jmeter/protocol/java/config JavaConfig.java
               src_1/org/apache/jmeter/protocol/java/config/gui
                        JavaConfigGui.java
               src_1/org/apache/jmeter/protocol/java/control/gui
                        JavaTestSamplerGui.java
               src_1/org/apache/jmeter/protocol/java/sampler
                        JavaSampler.java JavaSamplerClient.java
               src_1/org/apache/jmeter/protocol/java/test SleepTest.java
  Log:
  Fixing numerous bugs and enhancements.  New Java protocol.
  
  Revision  Changes    Path
  1.6       +1 -1      
jakarta-jmeter/src/org/apache/jmeter/engine/RemoteJMeterEngine.java
  
  Index: RemoteJMeterEngine.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/engine/RemoteJMeterEngine.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- RemoteJMeterEngine.java   26 Jul 2001 00:34:44 -0000      1.5
  +++ RemoteJMeterEngine.java   21 May 2002 03:36:43 -0000      1.6
  @@ -66,7 +66,7 @@
    ***********************************************************/
   public interface RemoteJMeterEngine extends Remote
   {
  -     void addThreadGroup(ThreadGroup tGroup) throws RemoteException;
  +     void addThreadGroup(org.apache.jmeter.threads.ThreadGroup tGroup) throws 
RemoteException;
   
        void runTest() throws RemoteException;
   
  
  
  
  1.10      +1 -1      
jakarta-jmeter/src/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java
  
  Index: RemoteJMeterEngineImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- RemoteJMeterEngineImpl.java       28 Aug 2001 21:28:31 -0000      1.9
  +++ RemoteJMeterEngineImpl.java       21 May 2002 03:36:43 -0000      1.10
  @@ -98,7 +98,7 @@
         *      attribute
         *@exception  RemoteException  Description of Exception
         ***********************************************************/
  -     public void addThreadGroup(ThreadGroup tGroup) throws RemoteException
  +     public void addThreadGroup(org.apache.jmeter.threads.ThreadGroup tGroup) 
throws RemoteException
        {
                backingEngine.addThreadGroup(tGroup);
        }
  
  
  
  1.7       +18 -4     jakarta-jmeter/src/org/apache/jmeter/reporters/FileReporter.java
  
  Index: FileReporter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/reporters/FileReporter.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- FileReporter.java 4 Mar 2002 23:08:54 -0000       1.6
  +++ FileReporter.java 21 May 2002 03:36:43 -0000      1.7
  @@ -87,16 +87,30 @@
                String line;
                while ((line = reader.readLine()) != null) {
                        try {
  -                             if (line.startsWith("#") || line.trim().length() == 0) 
continue;
  -                             StringTokenizer st = new StringTokenizer(line, " ,");
  -                             String key = (String) st.nextToken();
  -                             Integer value = new Integer((String) st.nextToken());
  +                             line.trim();
  +                             if (line.startsWith("#") || line.length() == 0)
  +                                     continue;
  +                             int splitter = line.lastIndexOf(' ');
  +                             String key = line.substring(0, splitter);
  +                             int len = line.length() - 1;
  +                             Integer value = null;
  +                             if (line.charAt(len) == ',') {
  +                                     value = new Integer(
  +                                             line.substring(splitter + 1, len));
  +                             } else {
  +                                     value = new Integer(
  +                                             line.substring(splitter + 1));
  +                             }
                                Vector v = getData(key);
                                if (v == null) {
                                        v = new Vector();
                                        this.data.put(key, v);
                                }
                                v.addElement(value);
  +                     } catch (NumberFormatException nfe) {
  +                             System.out.println(nfe.toString());
  +                             System.out.println("This line could not be parsed: "
  +                                     + line);
                        } catch (Exception e) {
                                System.out.println(e.toString());
                        }
  
  
  
  1.5       +1 -2      jakarta-jmeter/src_1/org/apache/jmeter/NewDriver.java
  
  Index: NewDriver.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/NewDriver.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NewDriver.java    20 May 2002 13:05:50 -0000      1.4
  +++ NewDriver.java    21 May 2002 03:36:43 -0000      1.5
  @@ -90,13 +90,12 @@
   
                JMeterTreeModel treeModel = new JMeterTreeModel();
                JMeterTreeListener treeLis = new JMeterTreeListener(treeModel);
  +             treeLis.setActionHandler(ActionRouter.getInstance());
                GuiPackage guiPack = GuiPackage.getInstance(treeLis, treeModel);
                MainFrame main = new MainFrame(ActionRouter.getInstance(),
                                treeModel, treeLis);
  -             guiPack.setMainFrame(main);
                main.setTitle("Apache JMeter");
                main.setIconImage(JMeterUtils.getImage("jmeter.jpg").getImage());
  -             treeLis.setActionHandler(ActionRouter.getInstance());
                ComponentUtil.centerComponentInWindow(main,80);
                main.show();
                ActionRouter.getInstance().actionPerformed(new ActionEvent(
  
  
  
  1.3       +33 -1     
jakarta-jmeter/src_1/org/apache/jmeter/config/gui/AbstractConfigGui.java
  
  Index: AbstractConfigGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/config/gui/AbstractConfigGui.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractConfigGui.java    29 Apr 2002 17:08:07 -0000      1.2
  +++ AbstractConfigGui.java    21 May 2002 03:36:43 -0000      1.3
  @@ -65,12 +65,44 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:07 $
  + *@created   $Date: 2002/05/21 03:36:43 $
    *@version   1.0
    ***************************************/
   
   public abstract class AbstractConfigGui extends JPanel implements JMeterGUIComponent
   {
  +     
  +     private NamePanel namePanel;
  +
  +  public AbstractConfigGui()
  +  {
  +     namePanel = new NamePanel();
  +             setName(getStaticLabel());
  +  }
  +
  +  public void setName(String name)
  +  {
  +      namePanel.setName(name);
  +  }
  +  public String getName()
  +  {
  +      return namePanel.getName();
  +  }
  +
  +  protected NamePanel getNamePanel()
  +  {
  +     return namePanel;
  +  }
  +  
  +    /****************************************
  +      * !ToDo (Method description)
  +      *
  +      *@param element  !ToDo (Parameter description)
  +      ***************************************/
  +     public void configure(TestElement element)
  +     {
  +             setName((String)element.getProperty(TestElement.NAME));
  +     }
   
        /****************************************
         * !ToDo (Method description)
  
  
  
  1.5       +3 -25     
jakarta-jmeter/src_1/org/apache/jmeter/config/gui/ArgumentsPanel.java
  
  Index: ArgumentsPanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/config/gui/ArgumentsPanel.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ArgumentsPanel.java       9 May 2002 01:58:37 -0000       1.4
  +++ ArgumentsPanel.java       21 May 2002 03:36:43 -0000      1.5
  @@ -93,7 +93,6 @@
        {
                tableModel = new InnerTableModel();
                init();
  -             setName(getStaticLabel());
        }
   
        /****************************************
  @@ -107,27 +106,6 @@
        }
   
        /****************************************
  -      * !ToDo (Method description)
  -      *
  -      *@param name  !ToDo (Parameter description)
  -      ***************************************/
  -     public void setName(String name)
  -     {
  -             super.setName(name);
  -             this.name = name;
  -     }
  -
  -     /****************************************
  -      * !ToDoo (Method description)
  -      *
  -      *@return   !ToDo (Return description)
  -      ***************************************/
  -     public String getName()
  -     {
  -             return name;
  -     }
  -
  -     /****************************************
         * !ToDoo (Method description)
         *
         *@return   !ToDo (Return description)
  @@ -155,7 +133,7 @@
         ***************************************/
        public void configure(TestElement el)
        {
  -             setName((String)el.getProperty(TestElement.NAME));
  +             super.configure(el);
                if(el instanceof Arguments)
                {
                        tableModel.args = (Arguments)el;
  @@ -339,8 +317,8 @@
         * Inner class to handle table model calls
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/05/09 01:58:37 $
  -      *@version   $Revision: 1.4 $
  +      *@created   $Date: 2002/05/21 03:36:43 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        private class InnerTableModel extends DefaultTableModel
        {
  
  
  
  1.3       +2 -17     
jakarta-jmeter/src_1/org/apache/jmeter/config/gui/LoginConfigGui.java
  
  Index: LoginConfigGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/config/gui/LoginConfigGui.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LoginConfigGui.java       29 Apr 2002 17:08:07 -0000      1.2
  +++ LoginConfigGui.java       21 May 2002 03:36:43 -0000      1.3
  @@ -74,7 +74,6 @@
   {
        JTextField username = new JTextField(15);
        JTextField password = new JPasswordField(15);
  -     NamePanel namePanel;
        private boolean displayName = true;
   
        /****************************************
  @@ -93,23 +92,9 @@
        public LoginConfigGui(boolean displayName)
        {
                this.displayName = displayName;
  -             namePanel = new NamePanel();
  -             setName(getStaticLabel());
                init();
        }
   
  -
  -     public void setName(String name)
  -     {
  -             super.setName(name);
  -             namePanel.setName(name);
  -     }
  -
  -     public String getName()
  -     {
  -             return namePanel.getName();
  -     }
  -
        public String getStaticLabel()
        {
                return JMeterUtils.getResString("Login Config Element");
  @@ -117,7 +102,7 @@
   
        public void configure(TestElement element)
        {
  -             setName((String)element.getProperty(TestElement.NAME));
  +             super.configure(element);
                
username.setText((String)element.getProperty(ConfigTestElement.USERNAME));
                
password.setText((String)element.getProperty(ConfigTestElement.PASSWORD));
        }
  @@ -137,7 +122,7 @@
   
                if(displayName)
                {
  -                     this.add(namePanel);
  +                     this.add(getNamePanel());
                }
   
                this.add(createUsernamePanel());
  
  
  
  1.3       +3 -3      
jakarta-jmeter/src_1/org/apache/jmeter/engine/RemoteJMeterEngine.java
  
  Index: RemoteJMeterEngine.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/engine/RemoteJMeterEngine.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RemoteJMeterEngine.java   29 Apr 2002 17:08:07 -0000      1.2
  +++ RemoteJMeterEngine.java   21 May 2002 03:36:43 -0000      1.3
  @@ -54,9 +54,9 @@
    */
   package org.apache.jmeter.engine;
   
  -import java.rmi.*;
  -import org.apache.jmeter.samplers.RemoteSampleListener;
  -import org.apache.jmeter.threads.ThreadGroup;
  +import java.rmi.Remote;
  +import java.rmi.RemoteException;
  +
   import org.apache.jmeter.util.ListedHashTree;
   
   /************************************************************
  
  
  
  1.3       +3 -5      
jakarta-jmeter/src_1/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java
  
  Index: RemoteJMeterEngineImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RemoteJMeterEngineImpl.java       29 Apr 2002 17:08:07 -0000      1.2
  +++ RemoteJMeterEngineImpl.java       21 May 2002 03:36:43 -0000      1.3
  @@ -53,13 +53,11 @@
    * <http://www.apache.org/>.
    */
   package org.apache.jmeter.engine;
  -import java.io.*;
  -import java.rmi.*;
  +import java.rmi.Naming;
  +import java.rmi.RemoteException;
   
  -import java.util.*;
  -import org.apache.jmeter.threads.JMeterThread;
  -import org.apache.jmeter.threads.ThreadGroup;
   import org.apache.jmeter.util.ListedHashTree;
  +
   
   /************************************************************
    *  Description of the Class
  
  
  
  1.5       +2 -3      
jakarta-jmeter/src_1/org/apache/jmeter/engine/StandardJMeterEngine.java
  
  Index: StandardJMeterEngine.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/engine/StandardJMeterEngine.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StandardJMeterEngine.java 2 May 2002 22:54:58 -0000       1.4
  +++ StandardJMeterEngine.java 21 May 2002 03:36:43 -0000      1.5
  @@ -69,8 +69,8 @@
    *  !ToDo (Class description)
    *
    *@author     $Author: mstover1 $
  - *@created    $Date: 2002/05/02 22:54:58 $
  - *@version    $Revision: 1.4 $
  + *@created    $Date: 2002/05/21 03:36:43 $
  + *@version    $Revision: 1.5 $
    ***********************************************************/
   public class StandardJMeterEngine implements JMeterEngine,JMeterThreadMonitor
   {
  @@ -114,7 +114,6 @@
                // and the listeners, and the timer
                JMeterThread[] threads;
                Iterator iter = searcher.getSearchResults().iterator();
  -             System.out.println("found " + searcher.getSearchResults().size() + " 
threadgroups");
                notifyTestListenersOfStart();
                while(iter.hasNext())
                {
  
  
  
  1.6       +6 -4      jakarta-jmeter/src_1/org/apache/jmeter/gui/MainFrame.java
  
  Index: MainFrame.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/MainFrame.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MainFrame.java    20 May 2002 13:05:51 -0000      1.5
  +++ MainFrame.java    21 May 2002 03:36:43 -0000      1.6
  @@ -67,7 +67,7 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/05/20 13:05:51 $
  + *@created   $Date: 2002/05/21 03:36:43 $
    *@version   1.0
    ***************************************/
   
  @@ -104,6 +104,7 @@
                this.treeListener = treeListener;
                this.actionHandler = actionHandler;
                this.treeModel = treeModel;
  +             GuiPackage.getInstance().setMainFrame(this);
                init();
                this.setDefaultCloseOperation(this.DO_NOTHING_ON_CLOSE);
        }
  @@ -269,10 +270,11 @@
        {
                menuBar = new JMeterMenuBar();
                createToolBar();
  -             createTreePanel();
                createMainPanel();
  +             createTreePanel();
                addThemAll();
                addWindowListener(new WindowHappenings());
  +             tree.setSelectionRow(1);
        }
   
        private TreeCellRenderer getCellRenderer()
  @@ -361,8 +363,8 @@
         * !ToDo (Class description)
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/05/20 13:05:51 $
  -      *@version   $Revision: 1.5 $
  +      *@created   $Date: 2002/05/21 03:36:43 $
  +      *@version   $Revision: 1.6 $
         ***************************************/
        private class WindowHappenings extends WindowAdapter
        {
  
  
  
  1.5       +13 -1     
jakarta-jmeter/src_1/org/apache/jmeter/gui/action/EditCommand.java
  
  Index: EditCommand.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/action/EditCommand.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- EditCommand.java  2 May 2002 22:54:58 -0000       1.4
  +++ EditCommand.java  21 May 2002 03:36:43 -0000      1.5
  @@ -8,7 +8,7 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/05/02 22:54:58 $
  + *@created   $Date: 2002/05/21 03:36:43 $
    *@version   1.0
    ***************************************/
   
  @@ -36,6 +36,18 @@
                GuiPackage guiPackage = GuiPackage.getInstance();
                guiPackage.getMainFrame().setMainPanel((javax.swing.JComponent)
                                        
guiPackage.getTreeListener().getCurrentNode().getUserObject());
  +             guiPackage.getMainFrame().setEditMenu(
  +                             
((JMeterGUIComponent)guiPackage.getTreeListener().getCurrentNode().getUserObject()).createPopupMenu());
  +             if(!(guiPackage.getTreeListener().getCurrentNode().getUserObject() 
instanceof NamePanel))
  +             {
  +                     guiPackage.getMainFrame().setFileLoadEnabled(true);
  +                     guiPackage.getMainFrame().setFileSaveEnabled(true);
  +             }
  +             else
  +             {
  +                     guiPackage.getMainFrame().setFileLoadEnabled(false);
  +                     guiPackage.getMainFrame().setFileSaveEnabled(false);
  +             }                       
        }
   
        /****************************************
  
  
  
  1.4       +1 -2      
jakarta-jmeter/src_1/org/apache/jmeter/gui/tree/JMeterTreeListener.java
  
  Index: JMeterTreeListener.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/tree/JMeterTreeListener.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JMeterTreeListener.java   20 May 2002 13:05:51 -0000      1.3
  +++ JMeterTreeListener.java   21 May 2002 03:36:43 -0000      1.4
  @@ -297,10 +297,9 @@
                {
                        currentPath = tree.getPathForLocation(e.getX(), e.getY());
                }
  -             actionHandler.actionPerformed(new ActionEvent(this, e.getID(), 
JMeterUtils.getResString("edit")));
                if(selRow != -1)
                {
  -                     
updateMainMenu(((JMeterGUIComponent)getCurrentNode().getUserObject()).createPopupMenu());
  +                     
//updateMainMenu(((JMeterGUIComponent)getCurrentNode().getUserObject()).createPopupMenu());
                        if(isRightClick(e))
                        {
                                if(tree.getSelectionCount() < 2)
  
  
  
  1.3       +30 -14    
jakarta-jmeter/src_1/org/apache/jmeter/gui/util/JMeterMenuBar.java
  
  Index: JMeterMenuBar.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/util/JMeterMenuBar.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JMeterMenuBar.java        29 Apr 2002 17:08:09 -0000      1.2
  +++ JMeterMenuBar.java        21 May 2002 03:36:43 -0000      1.3
  @@ -1,8 +1,18 @@
   package org.apache.jmeter.gui.util;
  -import java.awt.event.*;
  -import java.util.*;
  -import javax.swing.*;
  -import org.apache.jmeter.gui.action.*;
  +import java.awt.Component;
  +import java.awt.event.KeyEvent;
  +import java.util.Collection;
  +import java.util.Iterator;
  +import java.util.LinkedList;
  +
  +import javax.swing.JMenu;
  +import javax.swing.JMenuBar;
  +import javax.swing.JMenuItem;
  +import javax.swing.JPopupMenu;
  +import javax.swing.KeyStroke;
  +import javax.swing.MenuElement;
  +import javax.swing.UIManager;
  +import org.apache.jmeter.gui.action.ActionRouter;
   import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jmeter.util.SSLManager;
   
  @@ -11,7 +21,7 @@
    * Apache Foundation
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:09 $
  + *@created   $Date: 2002/05/21 03:36:43 $
    *@version   1.0
    ***************************************/
   
  @@ -125,8 +135,20 @@
   
        public void setEditMenu(JPopupMenu menu)
        {
  -             editMenu.removeAll();
  -             editMenu.add(menu);
  +             if(menu != null)
  +             {
  +                     editMenu.removeAll();
  +                     Component[] comps = menu.getComponents();
  +                     for(int i = 0;i < comps.length;i++)
  +                     {
  +                             editMenu.add(comps[i]);
  +                     }
  +                     editMenu.setEnabled(true);
  +             }
  +             else
  +             {
  +                     editMenu.setEnabled(false);
  +             }
        }
   
        /****************************************
  @@ -235,13 +257,7 @@
                fileMenu.add(file_exit);
   
                // EDIT MENU
  -             editMenu = new JMenu(JMeterUtils.getResString("menu_edit"));
  -             editMenu.setMnemonic('E');
  -             edit_remove = new JMenuItem(JMeterUtils.getResString("remove"));
  -             edit_remove.setMnemonic('R');
  -             edit_remove.addActionListener(ActionRouter.getInstance());
  -             edit_remove.setEnabled(false);
  -             editMenu.add(edit_remove);
  +             editMenu = new JMenu(JMeterUtils.getResString("edit"));
                // From the Java Look and Feel Guidelines: If all items in a menu
                // are disabled, then disable the menu.  Makes sense.
                editMenu.setEnabled(false);
  
  
  
  1.3       +3 -18     
jakarta-jmeter/src_1/org/apache/jmeter/protocol/ftp/config/gui/FtpConfigGui.java
  
  Index: FtpConfigGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/ftp/config/gui/FtpConfigGui.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FtpConfigGui.java 29 Apr 2002 17:08:10 -0000      1.2
  +++ FtpConfigGui.java 21 May 2002 03:36:43 -0000      1.3
  @@ -70,7 +70,7 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:10 $
  + *@created   $Date: 2002/05/21 03:36:43 $
    *@version   1.0
    ***************************************/
   
  @@ -84,8 +84,6 @@
   
        private boolean displayName = true;
   
  -     private NamePanel namePanel;
  -
        /****************************************
         * !ToDo (Constructor description)
         ***************************************/
  @@ -99,20 +97,9 @@
                return JMeterUtils.getResString("ftp_sample_title");
        }
   
  -     public void setName(String name)
  -     {
  -             super.setName(name);
  -             namePanel.setName(name);
  -     }
  -
  -     public String getName()
  -     {
  -             return namePanel.getName();
  -     }
  -
        public void configure(TestElement element)
        {
  -             setName((String)element.getProperty(TestElement.NAME));
  +             super.configure(element);
                server.setText((String)element.getProperty(FTPSampler.SERVER));
                filename.setText((String)element.getProperty(FTPSampler.FILENAME));
        }
  @@ -134,8 +121,6 @@
        public FtpConfigGui(boolean displayName)
        {
                this.displayName = displayName;
  -             namePanel = new NamePanel();
  -             setName(getStaticLabel());
                init();
        }
   
  @@ -181,7 +166,7 @@
                        mainPanel.add(panelTitleLabel);
   
                        // NAME
  -                     mainPanel.add(namePanel);
  +                     mainPanel.add(getNamePanel());
   
                        // LOOP
                        mainPanel.add(createServerPanel());
  
  
  
  1.5       +5 -38     
jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
  
  Index: UrlConfigGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- UrlConfigGui.java 29 Apr 2002 17:08:10 -0000      1.4
  +++ UrlConfigGui.java 21 May 2002 03:36:43 -0000      1.5
  @@ -73,7 +73,7 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:10 $
  + *@created   $Date: 2002/05/21 03:36:43 $
    *@version   1.0
    ***************************************/
   
  @@ -88,10 +88,6 @@
         * !ToDo (Field description)
         ***************************************/
        protected ArgumentsPanel argsPanel;
  -     /****************************************
  -      * !ToDo (Field description)
  -      ***************************************/
  -     protected NamePanel namePanel;
        private static String DOMAIN = "domain";
        private static String PORT = "port";
        private static String PATH = "path";
  @@ -125,34 +121,12 @@
         ***************************************/
        public UrlConfigGui(boolean display)
        {
  -             namePanel = new NamePanel();
                displayName = display;
                init();
                setName(getStaticLabel());
        }
   
        /****************************************
  -      * !ToDo (Method description)
  -      *
  -      *@param name  !ToDo (Parameter description)
  -      ***************************************/
  -     public void setName(String name)
  -     {
  -             super.setName(name);
  -             namePanel.setName(name);
  -     }
  -
  -     /****************************************
  -      * !ToDoo (Method description)
  -      *
  -      *@return   !ToDo (Return description)
  -      ***************************************/
  -     public String getName()
  -     {
  -             return namePanel.getName();
  -     }
  -
  -     /****************************************
         * !ToDoo (Method description)
         *
         *@return   !ToDo (Return description)
  @@ -228,16 +202,6 @@
        }
   
        /****************************************
  -      * !ToDoo (Method description)
  -      *
  -      *@return   !ToDo (Return description)
  -      ***************************************/
  -     protected NamePanel getNamePanel()
  -     {
  -             return namePanel;
  -     }
  -
  -     /****************************************
         * !ToDo (Method description)
         ***************************************/
        protected void init()
  @@ -274,7 +238,10 @@
                        mainPanel.add(panelTitleLabel);
   
                        // NAME
  -                     mainPanel.add(getNamePanel());
  +                     if(displayName)
  +                     {
  +                             mainPanel.add(getNamePanel());
  +                     }
   
                        mainPanel.add(webServerPanel);
                        mainPanel.add(webRequestPanel);
  
  
  
  1.4       +20 -7     
jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/control/CookieManager.java
  
  Index: CookieManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/control/CookieManager.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CookieManager.java        29 Apr 2002 17:08:10 -0000      1.3
  +++ CookieManager.java        21 May 2002 03:36:43 -0000      1.4
  @@ -56,26 +56,39 @@
   package org.apache.jmeter.protocol.http.control;
   
   
  -import java.io.*;
  +import java.io.BufferedReader;
  +import java.io.File;
  +import java.io.FileReader;
  +import java.io.FileWriter;
  +import java.io.IOException;
  +import java.io.PrintWriter;
  +import java.io.Serializable;
   import java.net.URL;
  -import java.text.DateFormat;
   import java.text.ParseException;
   import java.text.SimpleDateFormat;
  -import java.util.*;
  +import java.util.ArrayList;
  +import java.util.Date;
  +import java.util.Enumeration;
  +import java.util.Iterator;
  +import java.util.LinkedList;
  +import java.util.List;
  +import java.util.StringTokenizer;
  +import java.util.TimeZone;
  +import java.util.Vector;
   
  -import org.apache.jmeter.config.*;
  -import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jmeter.testelement.AbstractTestElement;
  +import org.apache.jmeter.testelement.PerThreadClonable;
  +import org.apache.jmeter.util.JMeterUtils;
   
   /**
    * This class provides an interface to the netscape cookies file to
    * pass cookies along with a request.
    *
    * @author  <a href="mailto:[EMAIL PROTECTED]";>Sean Dowd</a>
  - * @version $Revision: 1.3 $ $Date: 2002/04/29 17:08:10 $
  + * @version $Revision: 1.4 $ $Date: 2002/05/21 03:36:43 $
    */
   public class CookieManager extends AbstractTestElement implements
  -               Serializable
  +               Serializable,PerThreadClonable
   {
   
         public static final String COOKIES = "CookieManager.cookies";
  
  
  
  1.5       +8 -32     
jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/gui/AuthPanel.java
  
  Index: AuthPanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/gui/AuthPanel.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AuthPanel.java    2 May 2002 22:54:58 -0000       1.4
  +++ AuthPanel.java    21 May 2002 03:36:44 -0000      1.5
  @@ -73,8 +73,8 @@
    * user selects.
    *
    *@author    $Author: mstover1 $
  - *@created   $Date: 2002/05/02 22:54:58 $
  - *@version   $Revision: 1.4 $
  + *@created   $Date: 2002/05/21 03:36:44 $
  + *@version   $Revision: 1.5 $
    ***************************************/
   public class AuthPanel extends AbstractConfigGui implements ActionListener
   {
  @@ -90,7 +90,6 @@
        JButton loadButton;
        JButton saveButton;
        JPanel authManagerPanel;
  -     private NamePanel namePanel;
   
        /****************************************
         * Default Constructor
  @@ -99,7 +98,6 @@
        {
                tableModel = new InnerTableModel();
                init();
  -             setName(getStaticLabel());
        }
   
        /****************************************
  @@ -121,7 +119,7 @@
         ***************************************/
        public void configure(TestElement el)
        {
  -             setName((String)el.getProperty(TestElement.NAME));
  +             super.configure(el);
                tableModel.manager = (AuthManager)el;
        }
   
  @@ -136,27 +134,6 @@
        }
   
        /****************************************
  -      * !ToDo (Method description)
  -      *
  -      *@param name  !ToDo (Parameter description)
  -      ***************************************/
  -     public void setName(String name)
  -     {
  -             super.setName(name);
  -             namePanel.setName(name);
  -     }
  -
  -     /****************************************
  -      * !ToDoo (Method description)
  -      *
  -      *@return   !ToDo (Return description)
  -      ***************************************/
  -     public String getName()
  -     {
  -             return namePanel.getName();
  -     }
  -
  -     /****************************************
         * Shows the main authentication panel for this object
         ***************************************/
        public void init()
  @@ -178,8 +155,7 @@
                panelTitleLabel.setFont(new Font(curFont.getFontName(), 
curFont.getStyle(), curFontSize));
                authManagerPanel.add(panelTitleLabel);
   
  -             namePanel = new NamePanel();
  -             authManagerPanel.add(namePanel);
  +             authManagerPanel.add(getNamePanel());
   
                JPanel authTablePanel = createAuthTablePanel();
                authManagerPanel.add(authTablePanel);
  @@ -399,8 +375,8 @@
         * !ToDo (Class description)
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/05/02 22:54:58 $
  -      *@version   $Revision: 1.4 $
  +      *@created   $Date: 2002/05/21 03:36:44 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        private class InnerTableModel extends AbstractTableModel
        {
  @@ -553,8 +529,8 @@
         * !ToDo (Class description)
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/05/02 22:54:58 $
  -      *@version   $Revision: 1.4 $
  +      *@created   $Date: 2002/05/21 03:36:44 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        private class PasswordCellRenderer extends JPasswordField implements 
TableCellRenderer
        {
  
  
  
  1.5       +5 -29     
jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/gui/CookiePanel.java
  
  Index: CookiePanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/gui/CookiePanel.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CookiePanel.java  2 May 2002 22:54:59 -0000       1.4
  +++ CookiePanel.java  21 May 2002 03:36:44 -0000      1.5
  @@ -73,8 +73,8 @@
    * for this service.
    *
    *@author    $Author: mstover1 $
  - *@created   $Date: 2002/05/02 22:54:59 $
  - *@version   $Revision: 1.4 $
  + *@created   $Date: 2002/05/21 03:36:44 $
  + *@version   $Revision: 1.5 $
    ***************************************/
   public class CookiePanel extends AbstractConfigGui implements ActionListener
   {
  @@ -88,7 +88,6 @@
        JPanel cookieManagerPanel;
        JTextPane nicknameTextPane;
        JTextArea nicknameText;
  -     NamePanel namePanel;
   
        /****************************************
         * Default constructor
  @@ -97,7 +96,6 @@
        {
                tableModel = new InnerTableModel();
                init();
  -             setName(getStaticLabel());
        }
   
        /****************************************
  @@ -248,32 +246,11 @@
         ***************************************/
        public void configure(TestElement el)
        {
  -             setName((String)el.getProperty(TestElement.NAME));
  +             super.configure(el);
                tableModel.manager = (CookieManager)el;
        }
   
        /****************************************
  -      * !ToDo (Method description)
  -      *
  -      *@param name  !ToDo (Parameter description)
  -      ***************************************/
  -     public void setName(String name)
  -     {
  -             super.setName(name);
  -             namePanel.setName(name);
  -     }
  -
  -     /****************************************
  -      * !ToDoo (Method description)
  -      *
  -      *@return   !ToDo (Return description)
  -      ***************************************/
  -     public String getName()
  -     {
  -             return namePanel.getName();
  -     }
  -
  -     /****************************************
         * Shows the main cookie configuration panel
         ***************************************/
        public void init()
  @@ -295,8 +272,7 @@
                panelTitleLabel.setFont(new Font(curFont.getFontName(), 
curFont.getStyle(), curFontSize));
                cookieManagerPanel.add(panelTitleLabel);
   
  -             namePanel = new NamePanel();
  -             cookieManagerPanel.add(namePanel);
  +             cookieManagerPanel.add(getNamePanel());
   
                JPanel cookieTablePanel = createCookieTablePanel();
                cookieManagerPanel.add(cookieTablePanel);
  @@ -394,7 +370,7 @@
         *
         *@author    mike
         *@created   July 14, 2001
  -      *@version   $Revision: 1.4 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        public class InnerTableModel extends AbstractTableModel
        {
  
  
  
  1.5       +8 -32     
jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
  
  Index: HeaderPanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/gui/HeaderPanel.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- HeaderPanel.java  2 May 2002 22:54:59 -0000       1.4
  +++ HeaderPanel.java  21 May 2002 03:36:44 -0000      1.5
  @@ -72,8 +72,8 @@
    * parameters for this service.
    *
    *@author    $Author: mstover1 $
  - *@created   $Date: 2002/05/02 22:54:59 $
  - *@version   $Revision: 1.4 $
  + *@created   $Date: 2002/05/21 03:36:44 $
  + *@version   $Revision: 1.5 $
    ***************************************/
   public class HeaderPanel extends AbstractConfigGui implements ActionListener
   {
  @@ -84,7 +84,6 @@
         * A table to show the authentication information
         ***************************************/
        JTable headerTable;
  -     NamePanel namePanel;
   
        JButton addButton;
        JButton deleteButton;
  @@ -99,7 +98,6 @@
        {
                tableModel = new InnerTableModel();
                init();
  -             setName(getStaticLabel());
        }
   
        /****************************************
  @@ -121,7 +119,7 @@
         ***************************************/
        public void configure(TestElement el)
        {
  -             setName((String)el.getProperty(TestElement.NAME));
  +             super.configure(el);
                tableModel.manager = (HeaderManager)el;
        }
   
  @@ -136,27 +134,6 @@
        }
   
        /****************************************
  -      * !ToDo (Method description)
  -      *
  -      *@param name  !ToDo (Parameter description)
  -      ***************************************/
  -     public void setName(String name)
  -     {
  -             super.setName(name);
  -             namePanel.setName(name);
  -     }
  -
  -     /****************************************
  -      * !ToDoo (Method description)
  -      *
  -      *@return   !ToDo (Return description)
  -      ***************************************/
  -     public String getName()
  -     {
  -             return namePanel.getName();
  -     }
  -
  -     /****************************************
         * Gets a HeaderManager to manage the file that is currently selected. Null is
         * returned if no file is currently selected. Null will also be returned if
         * there is a problem reading the file while getting the HeaderManager.
  @@ -187,8 +164,7 @@
                panelTitleLabel.setFont(new Font(curFont.getFontName(), 
curFont.getStyle(), curFontSize));
                headerManagerPanel.add(panelTitleLabel);
   
  -             namePanel = new NamePanel();
  -             headerManagerPanel.add(namePanel);
  +             headerManagerPanel.add(getNamePanel());
   
                JPanel headerTablePanel = createHeaderTablePanel();
                headerManagerPanel.add(headerTablePanel);
  @@ -404,8 +380,8 @@
         * Updates a header record
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/05/02 22:54:59 $
  -      *@version   $Revision: 1.4 $
  +      *@created   $Date: 2002/05/21 03:36:44 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        class HeaderUpdater implements ActionListener
        {
  @@ -561,8 +537,8 @@
         * !ToDo (Class description)
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/05/02 22:54:59 $
  -      *@version   $Revision: 1.4 $
  +      *@created   $Date: 2002/05/21 03:36:44 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        private class InnerTableModel extends AbstractTableModel
        {
  
  
  
  1.1                  
jakarta-jmeter/src_1/org/apache/jmeter/protocol/java/config/JavaConfig.java
  
  Index: JavaConfig.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.jmeter.protocol.java.config;
  
  import java.io.Serializable;
  
  import org.apache.jmeter.config.Arguments;
  import org.apache.jmeter.protocol.java.sampler.JavaSampler;
  import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
  import org.apache.jmeter.testelement.AbstractTestElement;
  import org.apache.log4j.Category;
  
  
  /**
   *
   * The <code>JavaConfig</code> class contains the configuration data
   * necessary for the Java protocol.
   *
   *@author     Brad Kiewel
   *@created    $Date: 2002/05/21 03:36:44 $
   *@version    $Revision: 1.1 $
   */
  
  public class JavaConfig extends AbstractTestElement implements Serializable
  {
  
        /** Logging  */
        private static Category cat = Category.getInstance(JavaConfig.class);
        
        private transient JavaSamplerClient javaClient = null;
  
        /**
         *  Constructor for the JavaConfig object
         */
        public JavaConfig()
        {
                setArguments(new Arguments());
        }
  
        /**
         *  Sets the Classname attribute of the JavaConfig object
         *
         *@param  classname  The new Classname value
         */
        public void setClassname(String classname)
        {
                setProperty(JavaSampler.CLASSNAME, classname);
        }
  
  
  
        /**
         *  Gets the Classname attribute of the JavaConfig object
         *
         *@return    The Classname value
         */
        public String getClassname()
        {
                return (String) getPropertyAsString(JavaSampler.CLASSNAME);
        }
  
        public void addArgument(String name,String value)
        {
                Arguments args = this.getArguments();
                args.addArgument(name,value);
        }
  
        public void removeArguments()
        {
                this.setProperty(JavaSampler.ARGUMENTS,new Arguments());
        }
        
        public void setArguments(Arguments args)
        {
                setProperty(JavaSampler.ARGUMENTS,args);
        }
  
        /**
         *  Gets the Arguments attribute of the JavaConfig object
         *
         *@return    The Arguments value
         */
        public Arguments getArguments()
        {
                return (Arguments) getProperty(JavaSampler.ARGUMENTS);
        }
  }
  
  
  
  
  
  1.1                  
jakarta-jmeter/src_1/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java
  
  Index: JavaConfigGui.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.jmeter.protocol.java.config.gui;
  
  import java.awt.Font;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import java.awt.event.KeyEvent;
  import java.awt.event.KeyListener;
  import java.util.ArrayList;
  
  import javax.swing.BorderFactory;
  import javax.swing.JComboBox;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.border.Border;
  import javax.swing.border.EmptyBorder;
  import org.apache.jmeter.config.Arguments;
  import org.apache.jmeter.config.gui.AbstractConfigGui;
  import org.apache.jmeter.config.gui.ArgumentsPanel;
  import org.apache.jmeter.gui.NamePanel;
  import org.apache.jmeter.gui.util.VerticalLayout;
  import org.apache.jmeter.protocol.java.config.JavaConfig;
  import org.apache.jmeter.protocol.java.sampler.JavaSampler;
  import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
  import org.apache.jmeter.testelement.TestElement;
  import org.apache.jmeter.util.ClassFinder;
  import org.apache.jmeter.util.JMeterUtils;
  import org.apache.log4j.Category;
  
  
  /**
   * The <code>JavaConfigGui</code> class provides the user interface for
   * the JavaConfig object.
   * @author Brad Kiewel
   * @version $Revision: 1.1 $
   */
  
  public class JavaConfigGui extends AbstractConfigGui
  {
        private static Category cat = Category.getInstance(JavaConfigGui.class);
        private static String CLASSNAMECOMBO = "classnamecombo";
  
        private JComboBox classnameCombo;
        protected boolean displayName = true;
        private ArgumentsPanel argsPanel;
  
        public JavaConfigGui()
        {
                this(true);
        }
        
        public String getStaticLabel()
        {
                return JMeterUtils.getResString("Java Request Defaults");
        }
  
        public JavaConfigGui(boolean displayNameField)
        {
                this.displayName = displayNameField;
                init();
        }
  
        protected void init()
        {
                this.setLayout(new VerticalLayout(5, VerticalLayout.LEFT, 
VerticalLayout.TOP));
  
                JPanel classnameRequestPanel = new JPanel();
                classnameRequestPanel.setLayout(new VerticalLayout(5, 
VerticalLayout.LEFT, VerticalLayout.TOP));
                
classnameRequestPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
 JMeterUtils.getResString("protocol_java_border")));
                classnameRequestPanel.add(getClassnamePanel());
                classnameRequestPanel.add(getParameterPanel());
  
                if (displayName)
                {
                        // MAIN PANEL
                        JPanel mainPanel = new JPanel();
                        Border margin = new EmptyBorder(10, 10, 5, 10);
                        mainPanel.setBorder(margin);
                        mainPanel.setLayout(new VerticalLayout(5, 
VerticalLayout.LEFT));
  
                        // TITLE
                        JLabel panelTitleLabel = new 
JLabel(JMeterUtils.getResString("protocol_java_config_tile"));
                        Font curFont = panelTitleLabel.getFont();
                        int curFontSize = curFont.getSize();
                        curFontSize += 4;
                        panelTitleLabel.setFont(new Font(curFont.getFontName(), 
curFont.getStyle(), curFontSize));
                        mainPanel.add(panelTitleLabel);
  
                        // NAME
                        mainPanel.add(getNamePanel());
                        
                        mainPanel.add(classnameRequestPanel);
  
                        this.add(mainPanel);
                }
                else
                {
                        this.add(classnameRequestPanel);
                }
        }
  
  
        protected JPanel getClassnamePanel()
        {
                JPanel panel = new JPanel();
                panel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 10));
                panel.add(new 
JLabel(JMeterUtils.getResString("protocol_java_classname")));
                
                ArrayList possibleClasses = null;
                
                try {
                        
                        // Find all the classes which implement the JavaSamplerClient 
interface
                
                        possibleClasses = 
ClassFinder.findClassesByInterface(JMeterUtils.split(JMeterUtils.getPropDefault("search_paths",
 ".;ApacheJMeter.jar"), ";"),new Class[]{JavaSamplerClient.class});
                        
                        // Remove the JavaConfig class from the list since it only 
implements the interface for
                        // error conditions.
                        
                        
possibleClasses.remove("org.apache.jmeter.protocol.java.config.JavaConfig");
                
                } catch (Exception e) {
                        cat.debug("Exception getting interfaces.",e);
                }
                
                classnameCombo = new JComboBox(possibleClasses.toArray());
                classnameCombo.setName(CLASSNAMECOMBO);
                classnameCombo.setEditable(false);
                panel.add(classnameCombo);
                
  
                return panel;
        }
  
        protected JPanel getParameterPanel()
        {
                argsPanel = new ArgumentsPanel();
                return argsPanel;
        }
        
        public void configure(TestElement config)
        {
                super.configure(config);
                
argsPanel.configure((Arguments)config.getProperty(JavaSampler.ARGUMENTS));
                
classnameCombo.setSelectedItem(config.getPropertyAsString(JavaSampler.CLASSNAME));
        }
        
        public TestElement createTestElement()
        {
                JavaConfig config = new JavaConfig();
                this.configureTestElement(config);
                config.setArguments((Arguments)argsPanel.createTestElement());
                config.setClassname(classnameCombo.getSelectedItem().toString());
                return config;
        }               
  
  }
  
  
  
  1.1                  
jakarta-jmeter/src_1/org/apache/jmeter/protocol/java/control/gui/JavaTestSamplerGui.java
  
  Index: JavaTestSamplerGui.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.jmeter.protocol.java.control.gui;
  
  import java.awt.Font;
  
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.border.Border;
  import javax.swing.border.EmptyBorder;
  import org.apache.jmeter.gui.util.VerticalLayout;
  import org.apache.jmeter.protocol.java.config.JavaConfig;
  import org.apache.jmeter.protocol.java.config.gui.JavaConfigGui;
  import org.apache.jmeter.protocol.java.sampler.JavaSampler;
  import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
  import org.apache.jmeter.testelement.TestElement;
  import org.apache.jmeter.util.JMeterUtils;
  
  /**
   * The <code>JavaTestSamplerGui</code> class provides the user interface 
   * for the JavaTestSampler.
   * 
   * @author Brad Kiewel
   * @version $Revision: 1.1 $
   */
  
  public class JavaTestSamplerGui extends AbstractSamplerGui {
        
        private JavaConfigGui javaPanel = null;
  
        /**
         * Constructor for JavaTestSamplerGui
         *
        public JavaTestSamplerGui(LayoutManager arg0, boolean arg1) {
                super(arg0, arg1);
        }
  
        /**
         * Constructor for JavaTestSamplerGui
         *
        public JavaTestSamplerGui(LayoutManager arg0) {
                super(arg0);
        }
  
        /**
         * Constructor for JavaTestSamplerGui
         *
        public JavaTestSamplerGui(boolean arg0) {
                super(arg0);
        }
  
        /**
         * Constructor for JavaTestSamplerGui
         */
        public JavaTestSamplerGui() {
                super();
                init();
        }
        
        public String getStaticLabel()
        {
                return JMeterUtils.getResString("Java Request");
        }
  
        private void init() {
                this.setLayout(new VerticalLayout(5, VerticalLayout.LEFT, 
VerticalLayout.TOP));
  
                // MAIN PANEL
                JPanel mainPanel = new JPanel();
                Border margin = new EmptyBorder(10, 10, 5, 10);
                mainPanel.setBorder(margin);
                mainPanel.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
  
                // TITLE
                JLabel panelTitleLabel = new 
JLabel(JMeterUtils.getResString("protocol_java_test_title"));
                Font curFont = panelTitleLabel.getFont();
                int curFontSize = curFont.getSize();
                curFontSize += 4;
                panelTitleLabel.setFont(new Font(curFont.getFontName(), 
curFont.getStyle(), curFontSize));
                mainPanel.add(panelTitleLabel);
                
                // NAME
                mainPanel.add(getNamePanel());
  
                javaPanel = new JavaConfigGui(false);
                
                mainPanel.add(javaPanel);
  
                this.add(mainPanel);
        }
        
        public TestElement createTestElement()
        {
                JavaConfig config = (JavaConfig)javaPanel.createTestElement();
                JavaSampler sampler = new JavaSampler();
                this.configureTestElement(sampler);
                sampler.addTestElement(config);
                return sampler;
        }
        
        public void configure(TestElement el)
        {
                super.configure(el);
                javaPanel.configure(el);
        }
  }
  
  
  
  
  1.1                  
jakarta-jmeter/src_1/org/apache/jmeter/protocol/java/sampler/JavaSampler.java
  
  Index: JavaSampler.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.jmeter.protocol.java.sampler;
  
  import java.util.HashMap;
  import java.util.Iterator;
  
  import org.apache.jmeter.config.Argument;
  import org.apache.jmeter.config.Arguments;
  import org.apache.jmeter.protocol.java.config.JavaConfig;
  import org.apache.jmeter.samplers.AbstractSampler;
  import org.apache.jmeter.samplers.Entry;
  import org.apache.jmeter.samplers.SampleResult;
  import org.apache.jmeter.testelement.TestElement;
  import org.apache.log4j.Category;
  
  /**
   * 
   */
  
  
  public class JavaSampler extends AbstractSampler implements JavaSamplerClient {
  
        /** Handle to Java client. **/
        
        public final static String CLASSNAME = "classname";
        
        public final static String ARGUMENTS = "arguments";
  
        private JavaSamplerClient javaClient = null;
  
        /** Logging  */
        private static Category cat = Category.getInstance(JavaSampler.class);
  
        public JavaSampler() {
                setArguments(new Arguments());
        }
        
        public void setArguments(Arguments args)
        {
                this.setProperty(ARGUMENTS,args);
        }
        
        public Arguments getArguments()
        {
                return (Arguments)getProperty(ARGUMENTS);
        }
        
        public void addCustomTestElement(TestElement el)
        {
                if(el instanceof JavaConfig)
                {
                        mergeIn(el);
                }
        }
        
        /**
         * Releases Java Client.
         */
  
        public void releaseJavaClient () {
                if (javaClient != null) {
                        
javaClient.teardownTest(createArgumentsHashMap(getArguments()));
                }
                javaClient = null;
        }
        
        /**
         *  Sets the Classname attribute of the JavaConfig object
         *
         *@param  classname  The new Classname value
         */
        public void setClassname(String classname)
        {
                this.setProperty(CLASSNAME, classname);
        }
  
  
  
        /**
         *  Gets the Classname attribute of the JavaConfig object
         *
         *@return    The Classname value
         */
        public String getClassname()
        {
                return this.getPropertyAsString(CLASSNAME);
        }
        
        /**
         * Performs a test sample.
         * 
         * The <code>sample()</code> method retrieves the reference to the
         * Java client and calls its <code>runTest()</code> method.
         * @see Sampler#sample()
         * @see JavaSamplerClient#runTest()
         * 
         * @return test SampleResult
         */
        
  
        public SampleResult sample(Entry entry) {
                return 
createJavaClient().runTest(createArgumentsHashMap(getArguments()));
        }
        
        public HashMap createArgumentsHashMap(Arguments args)
        {
                HashMap newArgs = new HashMap();
                Iterator iter = args.iterator();
                while (iter.hasNext())
                {
                        Argument item = (Argument)iter.next();
                        newArgs.put(item.getName(),item.getValue());
                }
  
                return newArgs;
        }
        
                /**
         * Returns reference to <code>JavaSamplerClient</code>.
         * 
         * The <code>createJavaClient()</code> method uses reflection
         * to create an instance of the specified Java protocol client.
         * If the class can not be found, the method returns a reference
         * to <code>this</code> object.
         * 
         * @return JavaSamplerClient reference.
         */
  
        public JavaSamplerClient createJavaClient() {
                if (javaClient == null) {
                        try {
  
                                Class javaClass = Class.forName(getClassname().trim());
                                java.lang.reflect.Constructor[] constructors = 
javaClass.getConstructors();
  
                                for (int i = 0; i < constructors.length; i++) {
                                        Class[] params = 
constructors[i].getParameterTypes();
                                        if (params.length == 0) {
                                                Object[] args = {};
                                                javaClient = 
(JavaSamplerClient)constructors[i].newInstance(args);
                                                
javaClient.setupTest(createArgumentsHashMap(getArguments()));
                                                if (cat.isDebugEnabled()) {
                                                        cat.debug(whoAmI() + 
"\tCreated:\t"+ getClassname()+ "@" + Integer.toHexString(javaClient.hashCode()));
                                                }
                                                break;
                                        }
                                }
  
                        } catch (Exception e) {
                                cat.error(whoAmI() + "\tException creating: " + 
getClassname(),e);
                                javaClient = this;
                        }
                }
                
                return javaClient;
                        
        }
        
        /**
         * Retrieves reference to JavaSamplerClient.
         * 
         * Convience method used to check for null reference without
         * actually creating a JavaSamplerClient
         * 
         * @return reference to JavaSamplerClient
         */
        
        public JavaSamplerClient retrieveJavaClient() {
                return javaClient;
        }
        
        /**
         * Provide default setupTest() implementation for error conditions.
         * @see JavaSamplerClient#setupTest()
         */
        public void setupTest(HashMap arguments) {
                cat.debug(whoAmI() + "\tsetupTest");
        }
  
        /**
         * Provide default teardownTest() implementation for error conditions.
         * @see JavaSamplerClient#teardownTest()
         */
        public void teardownTest(HashMap arguments) {
                cat.debug(whoAmI() + "\tteardownTest");
                javaClient = null;
        }
  
        /**
         * Return SampleResult with data on error.
         * @see JavaSamplerClient#runTest()
         */
        public SampleResult runTest(HashMap arguments) {
                cat.debug(whoAmI() + "\trunTest");
                Thread.yield();
                SampleResult results = new SampleResult();
                results.setTime(0);
                results.setSuccessful(false);
                results.setResponseData(new String("Class not found: " + 
getClassname()).getBytes());
                results.setSampleLabel("ERROR: " + getClassname());
                return results;
        }
        
        private String whoAmI() {
                StringBuffer sb = new StringBuffer();
                sb.append(Thread.currentThread().getName());
                sb.append("@");
                sb.append(Integer.toHexString(hashCode()));
                return sb.toString();
        }
  
  }
  
  
  1.1                  
jakarta-jmeter/src_1/org/apache/jmeter/protocol/java/sampler/JavaSamplerClient.java
  
  Index: JavaSamplerClient.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.jmeter.protocol.java.sampler;
  
  import java.util.HashMap;
  
  import org.apache.jmeter.samplers.SampleResult;
  /**
   *<code>JavaSamplerClient</code> provides a standard
   * interface to execute external Java programs within JMeter.
   * 
   * @author Brad Kiewel
   * @version $Revision: 1.1 $
   */
  
  public interface JavaSamplerClient {
        
        /**
         * Setup any resources need for each test run.
         */
  
        public void setupTest(HashMap arguments);
        
        /**
         * Perform any clean up at the end of a test run.
         */
  
        public void teardownTest(HashMap arguments);
        
        /**
         * Performs test for each iteration.
         * 
         * The <code>runTest()</code> method performs one test interation 
         * each time it is called.  The method returns a SampleResult object.
         * The method should, has a minimum, place the response time in 
         * the SampleResult object.
         * 
         * @return SampleResult object with results of the test run.
         */
  
        public SampleResult runTest(HashMap arguments);
  }
  
  
  1.1                  
jakarta-jmeter/src_1/org/apache/jmeter/protocol/java/test/SleepTest.java
  
  Index: SleepTest.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.jmeter.protocol.java.test;
  
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.Map.Entry;
  
  import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
  import org.apache.jmeter.samplers.SampleResult;
  import org.apache.log4j.Category;
  
  /**
   * The <code>SleepTest</code> class is a simple example class for a 
   * JMeter Java protocol client.  The class implements the 
   * <code>JavaSamplerClient</code> interface.
   */
  
  public class SleepTest implements JavaSamplerClient {
        /** Define category for logging  */
        private static Category cat = Category.getInstance(SleepTest.class);
        /** */
        private long sleepTime = 1000;
        /** */
        private long sleepMask = 0x3ff;
        /**
         * Default constructor for <code>SleepTest</code>.
         * 
         * {@link org.apache.jmeter.protocol.java.config.JavaConfig JavaConfig} 
         * uses the default constructor to instantiate an instance of
         * the client class.
         */
        public SleepTest() {
                cat.debug(whoAmI() + "\tConstruct");
        }
  
        /**
         * @see JavaSamplerClient#setupTest()
         * 
         * setupTest() provides a way to do any initialization that may be required.
         */
        public void setupTest(HashMap arguments) {
                cat.debug(whoAmI() + "\tsetupTest()");
                Iterator argsIt = arguments.entrySet().iterator();
                while (argsIt.hasNext()) {
                        Entry entry = (Entry)argsIt.next();
                        cat.debug(entry.getKey().toString() + "=" + 
entry.getValue().toString());
                }
                
                if (arguments.containsKey("SleepTime")) {
                        setSleepTime(arguments.get("SleepTime"));
                }
                
                if (arguments.containsKey("SleepMask")) {
                        setSleepMask(arguments.get("SleepMask"));
                }
        }
  
        /**
         * @see JavaSamplerClient#teardownTest()
         * 
         * teardownTest() provides a way to do any clean-up that may be required.
         */
        public void teardownTest(HashMap arguments) {
                cat.debug(whoAmI() + "\tteardownTest()");
                Iterator argsIt = arguments.entrySet().iterator();
                while (argsIt.hasNext()) {
                        Entry entry = (Entry)argsIt.next();
                        cat.debug(entry.getKey().toString() + "=" + 
entry.getValue().toString());
                }
        }
  
        /**
         * @see JavaSamplerClient#runTest()
         * 
         * runTest() is called for each sample.  The method returns a 
         * <code>SampleResult</code> object.  The method must calculate
         * how long the sample took to execute.
         */
        public SampleResult runTest(HashMap arguments) {
  
                SampleResult results = new SampleResult();
                try {
                        //
                        // Generate a random value using the current time.
                        //
                        long ct = System.currentTimeMillis();
                        ct %= getSleepMask();
                        // 
                        // Record sample start time.
                        //
                        long start = System.currentTimeMillis();
                        //
                        // Execute the sample.  In this case sleep for the 
                        // specified time.
                        //
                        Thread.sleep(getSleepTime() + ct);
                        //
                        // Record end time and populate the results.
                        //
                        long end = System.currentTimeMillis();
                        results.setTime(end - start);
                        results.setSuccessful(true);
                        results.setSampleLabel("Sleep Test: time = "+getSleepTime() + 
ct);
                } catch (Exception e) {
                }
  
                if (cat.isDebugEnabled()) {
                        cat.debug(whoAmI() + "\trunTest()" + "\tTime:\t" + 
results.getTime());
                        Iterator argsIt = arguments.entrySet().iterator();
                        while (argsIt.hasNext()) {
                                Entry entry = (Entry)argsIt.next();
                                cat.debug(entry.getKey().toString() + "=" + 
entry.getValue().toString());
                        }
                }
  
                return results;
  
        }
  
        private String whoAmI() {
                StringBuffer sb = new StringBuffer();
                sb.append(Thread.currentThread().toString());
                sb.append("@");
                sb.append(Integer.toHexString(hashCode()));
                return sb.toString();
        }
        
        private long getSleepTime() {return sleepTime;}
        private long getSleepMask() {return sleepMask;}
        private void setSleepTime(Object arg) {
                try {
                        sleepTime = Long.parseLong((String)arg);
                } catch (Exception e) {
                        cat.debug("Exception getting sleepTime:\t",e);
                        sleepTime = 1000l;
                }
        }
        private void setSleepMask(Object arg) {
                try {
                        sleepMask = Long.parseLong((String)arg);
                } catch (Exception e) {
                        cat.debug("Exception getting sleepMask:\t",e);
                        sleepMask = 0x3ff;
                }
        }
  }
  
  
  1.4       +3 -17     
jakarta-jmeter/src_1/org/apache/jmeter/protocol/jdbc/config/gui/DbConfigGui.java
  
  Index: DbConfigGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/jdbc/config/gui/DbConfigGui.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DbConfigGui.java  29 Apr 2002 17:08:12 -0000      1.3
  +++ DbConfigGui.java  21 May 2002 03:36:44 -0000      1.4
  @@ -71,7 +71,7 @@
    * Title: Description: Copyright: Copyright (c) 2001 Company:
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:12 $
  + *@created   $Date: 2002/05/21 03:36:44 $
    *@version   1.0
    ***************************************/
   
  @@ -85,7 +85,6 @@
        private JTextField driverField = new JTextField(20);
   
        private boolean displayName;
  -     private NamePanel namePanel;
        private LoginConfigGui loginGui;
   
        /****************************************
  @@ -104,22 +103,9 @@
        public DbConfigGui(boolean displayName)
        {
                this.displayName = displayName;
  -             namePanel = new NamePanel();
  -             setName(getStaticLabel());
                init();
        }
   
  -     public void setName(String name)
  -     {
  -             super.setName(name);
  -             namePanel.setName(name);
  -     }
  -
  -     public String getName()
  -     {
  -             return namePanel.getName();
  -     }
  -
        public String getStaticLabel()
        {
                return JMeterUtils.getResString("database_login_title");
  @@ -137,7 +123,7 @@
   
        public void configure(TestElement element)
        {
  -             setName((String)element.getProperty(TestElement.NAME));
  +             super.configure(element);
                urlField.setText((String)element.getProperty(JDBCSampler.URL));
                driverField.setText((String)element.getProperty(JDBCSampler.DRIVER));
                loginGui.configure(element);
  @@ -164,7 +150,7 @@
                        mainPanel.add(panelTitleLabel);
   
                        // NAME
  -                     mainPanel.add(namePanel);
  +                     mainPanel.add(getNamePanel());
   
                        // URL and JDBC PROPS
                        JPanel urlJDBCPanel = new JPanel();
  
  
  
  1.4       +3 -7      
jakarta-jmeter/src_1/org/apache/jmeter/protocol/jdbc/config/gui/PoolConfigGui.java
  
  Index: PoolConfigGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/jdbc/config/gui/PoolConfigGui.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PoolConfigGui.java        29 Apr 2002 17:08:12 -0000      1.3
  +++ PoolConfigGui.java        21 May 2002 03:36:44 -0000      1.4
  @@ -70,7 +70,7 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:12 $
  + *@created   $Date: 2002/05/21 03:36:44 $
    *@version   1.0
    ***************************************/
   
  @@ -85,8 +85,6 @@
   
        private boolean displayName;
   
  -     private NamePanel namePanel;
  -
        /****************************************
         * !ToDo (Constructor description)
         ***************************************/
  @@ -103,14 +101,12 @@
        public PoolConfigGui(boolean displayName)
        {
                this.displayName = displayName;
  -             namePanel = new NamePanel();
  -             setName(getStaticLabel());
                init();
        }
   
        public void configure(TestElement element)
        {
  -             setName(element.getProperty(TestElement.NAME).toString());
  +             super.configure(element);
                
connField.setText(element.getProperty(JDBCSampler.CONNECTIONS).toString());
                
maxUseField.setText(element.getProperty(JDBCSampler.MAXUSE).toString());
        }
  @@ -200,7 +196,7 @@
                        mainPanel.add(panelTitleLabel);
   
                        // NAME
  -                     mainPanel.add(namePanel);
  +                     mainPanel.add(getNamePanel());
   
                        // CONNECTION POOL
                        JPanel connPoolPanel = new JPanel();
  
  
  
  1.4       +3 -6      
jakarta-jmeter/src_1/org/apache/jmeter/protocol/jdbc/config/gui/SqlConfigGui.java
  
  Index: SqlConfigGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/jdbc/config/gui/SqlConfigGui.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SqlConfigGui.java 29 Apr 2002 17:08:12 -0000      1.3
  +++ SqlConfigGui.java 21 May 2002 03:36:44 -0000      1.4
  @@ -70,14 +70,13 @@
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:12 $
  + *@created   $Date: 2002/05/21 03:36:44 $
    *@version   1.0
    ***************************************/
   
   public class SqlConfigGui extends AbstractConfigGui
   {
        private JTextField sqlField = new JTextField(30);
  -     private NamePanel namePanel;
        private boolean displayName;
   
        /****************************************
  @@ -96,8 +95,6 @@
        public SqlConfigGui(boolean displayName)
        {
                this.displayName = displayName;
  -             namePanel = new NamePanel();
  -             setName(getStaticLabel());
                init();
        }
   
  @@ -109,7 +106,7 @@
        public void configure(TestElement element)
        {
                sqlField.setText(element.getProperty(JDBCSampler.QUERY).toString());
  -             setName(element.getProperty(TestElement.NAME).toString());
  +             super.configure(element);
        }
   
        public TestElement createTestElement()
  @@ -141,7 +138,7 @@
                        mainPanel.add(panelTitleLabel);
   
                        // NAME
  -                     mainPanel.add(namePanel);
  +                     mainPanel.add(getNamePanel());
   
                        // SQL
                        mainPanel.add(createSqlPanel());
  
  
  
  1.4       +18 -4     
jakarta-jmeter/src_1/org/apache/jmeter/reporters/FileReporter.java
  
  Index: FileReporter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/reporters/FileReporter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- FileReporter.java 29 Apr 2002 17:08:13 -0000      1.3
  +++ FileReporter.java 21 May 2002 03:36:44 -0000      1.4
  @@ -87,16 +87,30 @@
                String line;
                while ((line = reader.readLine()) != null) {
                        try {
  -                             if (line.startsWith("#") || line.trim().length() == 0) 
continue;
  -                             StringTokenizer st = new StringTokenizer(line, " ,");
  -                             String key = (String) st.nextToken();
  -                             Integer value = new Integer((String) st.nextToken());
  +                             line.trim();
  +                             if (line.startsWith("#") || line.length() == 0)
  +                                     continue;
  +                             int splitter = line.lastIndexOf(' ');
  +                             String key = line.substring(0, splitter);
  +                             int len = line.length() - 1;
  +                             Integer value = null;
  +                             if (line.charAt(len) == ',') {
  +                                     value = new Integer(
  +                                             line.substring(splitter + 1, len));
  +                             } else {
  +                                     value = new Integer(
  +                                             line.substring(splitter + 1));
  +                             }
                                Vector v = getData(key);
                                if (v == null) {
                                        v = new Vector();
                                        this.data.put(key, v);
                                }
                                v.addElement(value);
  +                     } catch (NumberFormatException nfe) {
  +                             System.out.println(nfe.toString());
  +                             System.out.println("This line could not be parsed: "
  +                                     + line);
                        } catch (Exception e) {
                                System.out.println(e.toString());
                        }
  
  
  
  1.10      +7 -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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- messages.properties       20 May 2002 13:05:51 -0000      1.9
  +++ messages.properties       21 May 2002 03:36:44 -0000      1.10
  @@ -220,4 +220,10 @@
   insert_before=Insert Before
   insert_after=Insert After
   add_as_child=Add as Child
  -cancel=Cancel
  \ No newline at end of file
  +cancel=Cancel
  +protocol_java_classname=Classname:
  +protocol_java_config_tile=Configure Java Sample
  +protocol_java_border=Java class
  +protocol_java_test_title=Java Testing
  +java_request=Java Request
  +java_request_defaults=Java Request Defaults
  \ No newline at end of file
  
  
  
  1.9       +7 -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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- messages_ja.properties    20 May 2002 13:05:51 -0000      1.8
  +++ messages_ja.properties    21 May 2002 03:36:44 -0000      1.9
  @@ -214,4 +214,10 @@
   insert_before=Insert Before
   insert_after=Insert After
   add_as_child=Add as Child
  -cancel=Cancel
  \ No newline at end of file
  +cancel=Cancel
  +protocol_java_classname=Classname:
  +protocol_java_config_tile=Configure Java Sample
  +protocol_java_border=Java class
  +protocol_java_test_title=Java Testing
  +java_request=Java Request
  +java_request_defaults=Java Request Defaults
  \ No newline at end of file
  
  
  
  1.9       +7 -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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- messages_no.properties    20 May 2002 13:05:51 -0000      1.8
  +++ messages_no.properties    21 May 2002 03:36:44 -0000      1.9
  @@ -205,4 +205,10 @@
   insert_before=Insert Before
   insert_after=Insert After
   add_as_child=Add as Child
  -cancel=Cancel
  \ No newline at end of file
  +cancel=Cancel
  +protocol_java_classname=Classname:
  +protocol_java_config_tile=Configure Java Sample
  +protocol_java_border=Java class
  +protocol_java_test_title=Java Testing
  +java_request=Java Request
  +java_request_defaults=Java Request Defaults
  \ No newline at end of file
  
  
  
  1.5       +5 -6      jakarta-jmeter/src_1/org/apache/jmeter/threads/TestCompiler.java
  
  Index: TestCompiler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/threads/TestCompiler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TestCompiler.java 2 May 2002 22:55:00 -0000       1.4
  +++ TestCompiler.java 21 May 2002 03:36:44 -0000      1.5
  @@ -29,7 +29,7 @@
    * Company: </p>
    *
    *@author    unascribed
  - *@created   $Date: 2002/05/02 22:55:00 $
  + *@created   $Date: 2002/05/21 03:36:44 $
    *@version   1.0
    ***************************************/
   
  @@ -135,7 +135,6 @@
                        ObjectPair pair = new ObjectPair(child, stack.getLast());
                        if(!pairing.contains(pair))
                        {
  -                             System.out.println("Adding "+child+" to 
"+stack.getLast());
                                ((TestElement)stack.getLast()).addTestElement(child);
                                pairing.add(pair);
                        }
  @@ -165,8 +164,8 @@
         * !ToDo (Class description)
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/05/02 22:55:00 $
  -      *@version   $Revision: 1.4 $
  +      *@created   $Date: 2002/05/21 03:36:44 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        public static class Test extends junit.framework.TestCase
        {
  @@ -213,8 +212,8 @@
         * !ToDo (Class description)
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/05/02 22:55:00 $
  -      *@version   $Revision: 1.4 $
  +      *@created   $Date: 2002/05/21 03:36:44 $
  +      *@version   $Revision: 1.5 $
         ***************************************/
        private class ObjectPair
        {
  
  
  
  1.4       +12 -12    jakarta-jmeter/src_1/org/apache/jmeter/threads/ThreadGroup.java
  
  Index: ThreadGroup.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/threads/ThreadGroup.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ThreadGroup.java  29 Apr 2002 17:08:14 -0000      1.3
  +++ ThreadGroup.java  21 May 2002 03:36:44 -0000      1.4
  @@ -53,33 +53,33 @@
    * <http://www.apache.org/>.
    */
   package org.apache.jmeter.threads;
  -import java.io.*;
  -import java.util.*;
  -import org.apache.jmeter.config.ConfigElement;
  +import java.io.Serializable;
  +import java.util.Collections;
  +import java.util.Iterator;
  +import java.util.LinkedList;
  +import java.util.List;
  +
   import org.apache.jmeter.control.Controller;
   import org.apache.jmeter.control.LoopController;
  -import org.apache.jmeter.gui.*;
  -import org.apache.jmeter.gui.util.MenuFactory;
   import org.apache.jmeter.samplers.RemoteSampleListener;
   import org.apache.jmeter.samplers.SampleEvent;
   import org.apache.jmeter.samplers.SampleListener;
  +import org.apache.jmeter.samplers.Sampler;
   import org.apache.jmeter.testelement.AbstractTestElement;
  +import org.apache.jmeter.testelement.PerThreadClonable;
   import org.apache.jmeter.testelement.TestElement;
  -import org.apache.jmeter.timers.Timer;
  -import org.apache.jmeter.util.JMeterUtils;
  -import org.apache.jmeter.samplers.Sampler;
   
   /****************************************
    * Title: Apache JMeter Description: Copyright: Copyright (c) 2000 Company:
    * Apache Foundation
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:14 $
  + *@created   $Date: 2002/05/21 03:36:44 $
    *@version   1.0
    ***************************************/
   
   public class ThreadGroup extends AbstractTestElement implements SampleListener,
  -             Serializable,Controller
  +             Serializable,Controller,PerThreadClonable
   {
   
        /****************************************
  @@ -256,8 +256,8 @@
         * issues.
         *
         *@author    $Author: mstover1 $
  -      *@created   $Date: 2002/04/29 17:08:14 $
  -      *@version   $Revision: 1.3 $
  +      *@created   $Date: 2002/05/21 03:36:44 $
  +      *@version   $Revision: 1.4 $
         ***************************************/
        private class SampleQueue implements Runnable, Serializable
        {
  
  
  
  1.5       +0 -4      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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SearchByClass.java        1 May 2002 23:48:53 -0000       1.4
  +++ SearchByClass.java        21 May 2002 03:36:44 -0000      1.5
  @@ -29,10 +29,6 @@
                        tree.set(node, subTree);
                        subTrees.put(node, tree);
                }
  -             else
  -             {
  -                     System.out.println(" - NOT assignable from "+searchClass);
  -             }
        }
        public static class Test extends junit.framework.TestCase {
                public Test(String name) {
  
  
  

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

Reply via email to