mstover1    2002/07/11 19:05:50

  Modified:    .        build.xml
               bin      jmeter.properties
               src_1/org/apache/jmeter JMeter.java NewDriver.java
               src_1/org/apache/jmeter/engine StandardJMeterEngine.java
               src_1/org/apache/jmeter/junit AllTests.java
               src_1/org/apache/jmeter/resources messages_ja.properties
               src_1/org/apache/jmeter/testelement TestPlan.java
               src_1/org/apache/jmeter/util ClassFinder.java
                        JMeterUtils.java
  Added:       src_1/org/apache/jmeter/engine PreCompiler.java
  Log:
  New Function implementations
  patch for Japanese message file
  patch for JMeter startup in foreign directory
  
  Revision  Changes    Path
  1.63      +0 -1      jakarta-jmeter/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/build.xml,v
  retrieving revision 1.62
  retrieving revision 1.63
  diff -u -r1.62 -r1.63
  --- build.xml 11 Jul 2002 00:26:51 -0000      1.62
  +++ build.xml 12 Jul 2002 02:05:49 -0000      1.63
  @@ -24,7 +24,6 @@
   
     <path id="testClasspath">
                <path refid="classpath"/>
  -             <pathelement location="./bin/ApacheJMeter.jar"/>
                <pathelement location="./lib/ext/ApacheJMeter_core.jar"/>
     </path>
   
  
  
  
  1.39      +1 -1      jakarta-jmeter/bin/jmeter.properties
  
  Index: jmeter.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/bin/jmeter.properties,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- jmeter.properties 23 May 2002 15:47:03 -0000      1.38
  +++ jmeter.properties 12 Jul 2002 02:05:49 -0000      1.39
  @@ -2,7 +2,7 @@
   # Apache JMeter Property file
   ################################################################################
   #Paths to search for classes (";" must be the separator)
  -search_paths=../lib/ext
  +search_paths=lib/ext
   
   # Netscape HTTP Cookie file
   cookies=cookies
  
  
  
  1.4       +3 -2      jakarta-jmeter/src_1/org/apache/jmeter/JMeter.java
  
  Index: JMeter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/JMeter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JMeter.java       13 Jun 2002 00:45:15 -0000      1.3
  +++ JMeter.java       12 Jul 2002 02:05:49 -0000      1.4
  @@ -191,9 +191,10 @@
                if (parser.getArgumentById(PROPFILE_OPT) != null) {
                        
JMeterUtils.getProperties(parser.getArgumentById(PROPFILE_OPT).getArgument());
                } else {
  -                     JMeterUtils.getProperties(
  -                             System.getProperty("user.dir") + File.separator + 
"jmeter.properties");
  +                     JMeterUtils.getProperties(NewDriver.getJMeterDir() +
  +                             File.separator + "bin" + File.separator + 
"jmeter.properties");
                }
  +             JMeterUtils.setJMeterHome(NewDriver.getJMeterDir());
        }
   
        public void startServer() {
  
  
  
  1.10      +49 -38    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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- NewDriver.java    11 Jul 2002 00:26:52 -0000      1.9
  +++ NewDriver.java    12 Jul 2002 02:05:49 -0000      1.10
  @@ -56,15 +56,15 @@
   
   import java.io.File;
   import java.io.FilenameFilter;
  +import java.io.IOException;
   import java.lang.reflect.Method;
   import java.net.MalformedURLException;
   import java.net.URL;
   import java.net.URLClassLoader;
   import java.util.LinkedList;
   import java.util.List;
  +import java.util.StringTokenizer;
   
  -import sun.security.krb5.internal.i;
  -import sun.security.krb5.internal.crypto.e;
   
   
   
  @@ -80,53 +80,55 @@
   public class NewDriver
   {
        private static URLClassLoader loader;   
  +     private static String jmDir;
        
   
        
        static {
                List jars = new LinkedList();
  -             String jmDir = System.getProperty("user.dir")+File.separator+"..";
  -             File libDir = new File(jmDir+File.separator+"lib");
  -             File extDir = new 
File(jmDir+File.separator+"lib"+File.separator+"ext");
  -             File[] libJars = libDir.listFiles(new FilenameFilter() {
  -                     public boolean accept(File dir,String name) {
  -                             if(name.endsWith(".jar"))
  -                                     return true;
  -                             return false;
  -                     }});
  -             File[] extJars = extDir.listFiles(new FilenameFilter() {
  +             String cp = System.getProperty("java.class.path");
  +             
  +             //Find JMeter home dir
  +             StringTokenizer tok = new StringTokenizer(cp, File.pathSeparator);
  +             if (tok.countTokens() == 1) {
  +                     File jar = new File(tok.nextToken());
  +                     try {
  +                             jmDir = 
jar.getCanonicalFile().getParentFile().getParent();
  +                     } catch (IOException e) {
  +                     }
  +             }
  +             else
  +             {
  +                     File userDir = new File(System.getProperty("user.dir"));
  +                     jmDir = userDir.getAbsoluteFile().getParent();
  +             }
  +             
  +             StringBuffer classpath = new StringBuffer();
  +             File[] libDirs = new File[]{new File(jmDir+File.separator+"lib"),
  +                             new 
File(jmDir+File.separator+"lib"+File.separator+"ext")};
  +             for(int a = 0;a < libDirs.length;a++)
  +             {
  +                     File[] libJars = libDirs[a].listFiles(new FilenameFilter() {
                        public boolean accept(File dir,String name) {
                                if(name.endsWith(".jar"))
                                        return true;
                                return false;
                        }});
  -             StringBuffer classpath = new StringBuffer();
  -             for(int i = 0;i < libJars.length;i++)
  -             {
  -                     try
  +                     for(int i = 0;i < libJars.length;i++)
                        {
  -                             jars.add(new URL("file","",libJars[i].getPath()));
  -                             classpath.append(System.getProperty("path.separator"));
  -                             classpath.append(libJars[i].getPath());
  -                     }
  -                     catch(MalformedURLException e)
  -                     {
  -                             e.printStackTrace();
  -                     }
  -             }
  -             for(int i = 0;i < extJars.length;i++)
  -             {
  -                     try
  -                     {
  -                             jars.add(new URL("file","",extJars[i].getPath()));
  -                             classpath.append(System.getProperty("path.separator"));
  -                             classpath.append(extJars[i].getPath());
  -                     }
  -                     catch(MalformedURLException e)
  -                     {
  -                             e.printStackTrace();
  +                             try
  +                             {
  +                                     jars.add(new 
URL("file","",libJars[i].getPath()));
  +                                     
classpath.append(System.getProperty("path.separator"));
  +                                     classpath.append(libJars[i].getPath());
  +                             }
  +                             catch(MalformedURLException e)
  +                             {
  +                                     e.printStackTrace();
  +                             }
                        }
                }
  +             
                
System.setProperty("java.class.path",System.getProperty("java.class.path")+classpath.toString());
                loader = new URLClassLoader((URL[])jars.toArray(new URL[0]));
                try {
  @@ -147,6 +149,11 @@
                }
        }
        
  +     public static String getJMeterDir()
  +     {
  +             return jmDir;
  +     }
  +     
        private NewDriver(String[] args)
        {
                
  @@ -160,8 +167,12 @@
        public static void main(String[] args)
        {       
                Thread.currentThread().setContextClassLoader(loader);
  -             
System.setProperty("log4j.configuration",System.getProperty("user.dir")+
  -                             File.separator+"log4j.conf");
  +             if (System.getProperty("log4j.configuration") == null)
  +             {
  +                     File conf = new File(jmDir, "bin" + File.separator + 
"log4j.conf");
  +                     System.setProperty("log4j.configuration", "file:" + conf);
  +             }
  +             
                        try {
                                Class JMeter = 
loader.loadClass("org.apache.jmeter.JMeter");
                                Object instance = JMeter.newInstance();
  
  
  
  1.12      +9 -2      
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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- StandardJMeterEngine.java 13 Jun 2002 00:45:16 -0000      1.11
  +++ StandardJMeterEngine.java 12 Jul 2002 02:05:49 -0000      1.12
  @@ -108,6 +108,12 @@
        {
                return test;
        }
  +     
  +     protected void compileTree()
  +     {
  +             PreCompiler compiler = new PreCompiler();
  +             getTestTree().traverse(compiler);
  +     }
   
        /************************************************************
         *  !ToDo (Method description)
  @@ -118,6 +124,7 @@
                {
                        System.out.println("Running the test!");
                        running = true;
  +                     compileTree();
                        SearchByClass searcher = new SearchByClass(ThreadGroup.class);
                        testListeners = new SearchByClass(TestListener.class);
                        setMode();
  
  
  
  1.1                  jakarta-jmeter/src_1/org/apache/jmeter/engine/PreCompiler.java
  
  Index: PreCompiler.java
  ===================================================================
  package org.apache.jmeter.engine;
  
  import java.util.Collection;
  import java.util.Iterator;
  import java.util.Map;
  
  import org.apache.jmeter.protocol.all.modifier.CompoundFunction;
  import org.apache.jmeter.protocol.all.modifier.InvalidVariableException;
  import org.apache.jmeter.testelement.TestElement;
  import org.apache.jmeter.testelement.TestPlan;
  import org.apache.jmeter.util.ListedHashTree;
  import org.apache.jmeter.util.ListedHashTreeVisitor;
  
  /**
   * @author mstover
   *
   * To change this generated comment edit the template variable "typecomment":
   * Window>Preferences>Java>Templates.
   */
  public class PreCompiler implements ListedHashTreeVisitor {
        
        private Map userDefinedVariables;
        private CompoundFunction masterFunction = new CompoundFunction();
        private boolean testValid = true;
        
        public PreCompiler()
        {
        }
  
        /**
         * @see ListedHashTreeVisitor#addNode(Object, ListedHashTree)
         */
        public void addNode(Object node, ListedHashTree subTree) {
                if(node instanceof TestPlan)
                {
                        
masterFunction.setUserDefinedVariables(((TestPlan)node).getUserDefinedValues());
                }
                if(node instanceof TestElement)
                {
                        replaceValues((TestElement)node);
                }
        }
  
        /**
         * @see ListedHashTreeVisitor#subtractNode()
         */
        public void subtractNode() {
        }
  
        /**
         * @see ListedHashTreeVisitor#processPath()
         */
        public void processPath() {
        }
        
        private void replaceValues(TestElement el)
        {
                Iterator iter = el.getPropertyNames().iterator();
                while(iter.hasNext())
                {
                        String propName = (String)iter.next();
                        Object propValue = el.getProperty(propName);
                        if(propValue instanceof String)
                        {
                                Object newValue = getNewValue((String)propValue);
                                el.setProperty(propName,newValue);
                        }
                        else if(propValue instanceof TestElement)
                        {
                                replaceValues((TestElement)propValue);
                        }
                        else if(propValue instanceof Collection)
                        {
                                
el.setProperty(propName,replaceValues((Collection)propValue));
                        }
                }
        }
        
        private Object getNewValue(String propValue)
        {
                Object newValue = propValue;
                                masterFunction.clear();
                                try {
                                        
masterFunction.setParameters((String)propValue);
                                } catch(InvalidVariableException e) {
                                        testValid = false;
                                }
                                if(masterFunction.hasFunction())
                                {
                                        newValue = masterFunction.getFunction();
                                }
                                else if(masterFunction.hasStatics())
                                {
                                        newValue = 
masterFunction.getStaticSubstitution();
                                }
                                return newValue;
        }
        
        private Collection replaceValues(Collection values)
        {
                Collection newColl = null;
                try {
                        newColl = (Collection)values.getClass().newInstance();
                } catch(Exception e) {
                        e.printStackTrace();
                        return values;
                } 
                Iterator iter = values.iterator();
                while(iter.hasNext())
                {
                        Object val = iter.next();
                        if(val instanceof TestElement)
                        {
                                replaceValues((TestElement)val);
                        }
                        else if(val instanceof String)
                        {
                                val = getNewValue((String)val);
                        }
                        else if(val instanceof Collection)
                        {
                                val = replaceValues((Collection)val);
                        }
                        newColl.add(val);
                }
                return newColl;
        }
  
  }
  
  
  
  1.3       +2 -1      jakarta-jmeter/src_1/org/apache/jmeter/junit/AllTests.java
  
  Index: AllTests.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/junit/AllTests.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AllTests.java     29 Apr 2002 17:08:09 -0000      1.2
  +++ AllTests.java     12 Jul 2002 02:05:49 -0000      1.3
  @@ -90,6 +90,7 @@
                        System.exit(0);
                }
                JMeterUtils.getProperties(args[0]);
  +             JMeterUtils.setJMeterHome(new 
File(System.getProperty("user.dir")).getParent());
                // end : added - 11 July 2001
                try
                {
  
  
  
  1.22      +31 -24    
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.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- messages_ja.properties    11 Jul 2002 00:57:15 -0000      1.21
  +++ messages_ja.properties    12 Jul 2002 02:05:49 -0000      1.22
  @@ -3,7 +3,7 @@
   save=\u4fdd\u5b58
   save_all=\u5168\u3066\u4fdd\u5b58
   load=\u8aad\u8fbc
  -open=\u958b\u304f
  +open=\u958B\u304F...
   edit=\u7de8\u96c6
   exit=\u7d42\u4e86
   start=\u958b\u59cb
  @@ -17,16 +17,16 @@
   appearance=\u30eb\u30c3\u30af&\u30d5\u30a3\u30fc\u30eb
   sslManager=SSL \u30de\u30cd\u30fc\u30b8\u30e3
   pkcs12_desc=PKCS 12 Key (*.p12)
  -ssl_error_title=Key Store Problem
  +ssl_error_title=\u30AD\u30FC\u30B9\u30C8\u30A2\u30A8\u30E9\u30FC
   
ssl_pass_prompt=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002
  -ssl_pass_title=KeyStore Password
  +ssl_pass_title=\u30AD\u30FC\u30B9\u30C8\u30A2\u30D1\u30B9\u30EF\u30FC\u30C9
   
ssl_alias_prompt=\u3042\u306a\u305f\u306e\u5b9a\u7fa9\u6e08\u307f\u30a8\u30a4\u30ea\u30a2\u30b9\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002
   
ssl_alias_select=\u30c6\u30b9\u30c8\u306e\u305f\u3081\u306e\u3042\u306a\u305f\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002
  -ssl_alias_title=Client Alias
  +ssl_alias_title=\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u30A8\u30A4\u30EA\u30A2\u30B9
   help=\u30d8\u30eb\u30d7
   about=Apache JMeter \u306b\u3064\u3044\u3066
   remote_start=\u958b\u59cb(\u30ea\u30e2\u30fc\u30c8)
  -remote_start=\u505c\u6b62(\u30ea\u30e2\u30fc\u30c8)
  +remote_start=\u958B\u59CB(\u30EA\u30E2\u30FC\u30C8)
   root=\u30eb\u30fc\u30c8
   test_plan=\u30c6\u30b9\u30c8\u30d7\u30e9\u30f3
   workbench=\u30ef\u30fc\u30af\u30d9\u30f3\u30c1
  @@ -41,9 +41,9 @@
   port=\u30dd\u30fc\u30c8
   path=\u30d1\u30b9
   follow_redirects=Follow redirects [TO-DO]
  -method=\u30e1\u30bd\u30c3\u30c9
  +method=\u30E1\u30BD\u30C3\u30C9:
   default_parameters=\u30c7\u30d5\u30a9\u30eb\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf
  -name=\u540d\u524d
  +name=\u540D\u524D:
   value=\u5024
   secure=\u30bb\u30ad\u30e5\u30a2
   expiration=\u671f\u9650
  @@ -51,13 +51,29 @@
   password=\u30d1\u30b9\u30ef\u30fc\u30c9
   number_of_threads=\u30b9\u30ec\u30c3\u30c9\u6570
   infinite=\u7121\u9650\u30eb\u30fc\u30d7
  -iterator_num=\u30eb\u30fc\u30d7\u56de\u6570
  +iterator_num=\u30EB\u30FC\u30D7\u56DE\u6570:
   add_value=\u5024\u306e\u8ffd\u52a0
   
paramtable=\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u9001\u308b\u30d1\u30e9\u30e1\u30fc\u30bf
   upload=\u30d5\u30a1\u30a4\u30eb\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
   field_name=\u30d5\u30a3\u30fc\u30eb\u30c9\u540d
   looping_control=\u30eb\u30fc\u30d7\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb
   browse=\u53c2\u7167
  +html_parameter_mask=HTML\u30D1\u30E9\u30E1\u30FC\u30BF\u30DE\u30B9\u30AF
  +increment=\u30A4\u30F3\u30AF\u30EA\u30E1\u30F3\u30C8
  +id_prefix=ID\u63A5\u982D\u8F9E
  +lower_bound=\u4E0B\u9650
  +upper_bound=\u4E0A\u9650
  +menu_modifiers=\u4FEE\u98FE
  
+jndi_method_remote_parms=\u30EA\u30E2\u30FC\u30C8\u30E1\u30BD\u30C3\u30C9\u30D1\u30E9\u30E1\u30FC\u30BF
  +jndi_method_remote_name=\u30EA\u30E2\u30FC\u30C8\u30E1\u30BD\u30C3\u30C9\u540D
  
+jndi_method_remote_interface_list=\u30EA\u30E2\u30FC\u30C8\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9
  
+jndi_method_home_parms=\u30DB\u30FC\u30E0\u30E1\u30BD\u30C3\u30C9\u30D1\u30E9\u30E1\u30FC\u30BF
  +jndi_method_home_name=\u30DB\u30FC\u30E0\u30E1\u30BD\u30C3\u30C9\u540D
  +remote_stop=\u505C\u6B62(\u30EA\u30E2\u30FC\u30C8)
  +paste_insert=\u30DA\u30FC\u30B9\u30C8(\u633F\u5165)
  +paste_add=\u30DA\u30FC\u30B9\u30C8(\u8FFD\u52A0)
  +cut=\u30AB\u30C3\u30C8
  +copy=\u30B3\u30D4\u30FC
   
view_graph_tree_title=\u7D50\u679C\u3092\u30B0\u30E9\u30D5\u3068\u30C4\u30EA\u30FC\u3067\u8868\u793A
   menu_assertions=\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3
   menu_config_element=\u5404\u7A2E\u8A2D\u5B9A
  @@ -73,7 +89,7 @@
   mimetype=Mime\u30bf\u30a4\u30d7
   patterns_to_include=\u633f\u5165\u3059\u308b\u30d1\u30bf\u30fc\u30f3
   patterns_to_exclude=\u9664\u5916\u3059\u308b\u30d1\u30bf\u30fc\u30f3
  -add_pattern=\u30d1\u30bf\u30fc\u30f3\u8ffd\u52a0
  +add_pattern=\u30D1\u30BF\u30FC\u30F3\u8FFD\u52A0:
   ramp_up=Ramp-Up \u671f\u9593 (\u79d2):
   constant_timer_title=\u5B9A\u6570\u30BF\u30A4\u30DE
   constant_timer_delay=\u30b9\u30ec\u30c3\u30c9\u9045\u5ef6\u6642\u9593 
(\u30df\u30ea\u79d2):
  @@ -99,10 +115,10 @@
   graph_results_data=\u30c7\u30fc\u30bf
   graph_results_average=\u5e73\u5747
   graph_results_deviation=\u504f\u5dee
  -graph_results_no_samples=No of Samples
  +graph_results_no_samples=\u30B5\u30F3\u30D7\u30EB\u306A\u3057
   graph_results_ms=ms
  -graph_results_latest_sample=Latest Sample
  -graph_choose_graphs=Graphs to Display
  +graph_results_latest_sample=\u6700\u65B0\u306E\u30B5\u30F3\u30D7\u30EB
  +graph_choose_graphs=\u8868\u793A\u3059\u308B\u30B0\u30E9\u30D5
   
spline_visualizer_title=\u30b9\u30d7\u30e9\u30a4\u30f3\u30d3\u30b8\u30e5\u30a2\u30e9\u30a4\u30b6
   spline_visualizer_maximum=\u6700\u5927
   spline_visualizer_minimum=\u6700\u5c0f
  @@ -189,18 +205,9 @@
   jndi_method_button_reflect=\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3
   jndi_method_button_invoke=\u547c\u3073\u51fa\u3057
   
uniform_timer_memo=\u4E00\u69D8\u306B\u30E9\u30F3\u30C0\u30E0\u306A\u9045\u5EF6\u3092\u8FFD\u52A0
  -insert_parent=Insert Parent
  -copy=Copy
  -cut=Cut
  -paste_insert=Paste As Insert
  -paste=Paste
  +insert_parent=\u4E0A\u306E\u968E\u5C64\u306B\u633F\u5165
   url=URL
  -success?=Success?
  -html_parameter_mask=HTML Parameter Mask
  -id_prefix=ID Prefix
  -lower_bound=Lower Bound
  -upper_bound=Upper Bound
  -increment=Increment
  +success?=\u6210\u529F?
   id_suffix=ID Suffix
   url_multipart_config_title=HTTP Multipart Request Defaults
   view_results_in_table=View Results in Table
  @@ -211,7 +218,7 @@
   file_already_in_use=That file is already in use
   busy_testing=I'm busy testing, please stop the test before changing settings
   http_user_parameter_modifier=HTTP User Parameter Modifier
  -user_param_mod_help_note=(Do not change this.  Instead, modify the file of that 
name in JMeter's /bin directory)
  
+user_param_mod_help_note=(\u5909\u66F4\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\u5909\u66F4\u3059\u308B\u5834\u5408\u306F\u3001JMeter\u306E/bin\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u3042\u308B\u540C\u76DF\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4FEE\u6B63\u3057\u3066\u304F\u3060\u3055\u3044\u3002)
   filename=File Name
   cancel_exit_to_save=There are test items that have not been saved.  Do you wish to 
save before exiting?
   cancel_new_to_save=There are test items that have not been saved.  Do you wish to 
save before clearing the test plan?
  
  
  
  1.7       +13 -1     jakarta-jmeter/src_1/org/apache/jmeter/testelement/TestPlan.java
  
  Index: TestPlan.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/testelement/TestPlan.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TestPlan.java     13 Jun 2002 00:45:17 -0000      1.6
  +++ TestPlan.java     12 Jul 2002 02:05:49 -0000      1.7
  @@ -1,8 +1,10 @@
   package org.apache.jmeter.testelement;
   import java.io.Serializable;
   import java.util.Collection;
  +import java.util.HashMap;
   import java.util.LinkedList;
   import java.util.List;
  +import java.util.Map;
   
   import org.apache.jmeter.config.ConfigElement;
   import org.apache.jmeter.threads.ThreadGroup;
  @@ -28,6 +30,7 @@
        private List configs = new LinkedList();
        private static List itemsCanAdd = new LinkedList();
        private static TestPlan plan;
  +     private Map userDefinedVariables = new HashMap();
   
        static
        {
  @@ -65,7 +68,16 @@
        {
                setName(name);
                setProperty(THREAD_GROUPS, threadGroups);
  -
  +     }
  +     
  +     public void addParameter(String name,String value)
  +     {
  +             userDefinedVariables.put(name,value);
  +     }
  +     
  +     public Map getUserDefinedValues()
  +     {
  +             return userDefinedVariables;
        }
   
        /****************************************
  
  
  
  1.6       +48 -39    jakarta-jmeter/src_1/org/apache/jmeter/util/ClassFinder.java
  
  Index: ClassFinder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/util/ClassFinder.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ClassFinder.java  23 May 2002 15:47:07 -0000      1.5
  +++ ClassFinder.java  12 Jul 2002 02:05:49 -0000      1.6
  @@ -106,12 +106,25 @@
   
    */
   package org.apache.jmeter.util;
  -import java.util.*;
  -import java.util.zip.*;
  -import java.io.*;
  +import java.io.File;
  +import java.io.FilenameFilter;
  +import java.io.IOException;
   import java.lang.reflect.Modifier;
  +import java.util.ArrayList;
  +import java.util.Enumeration;
  +import java.util.HashMap;
  +import java.util.HashSet;
  +import java.util.Iterator;
  +import java.util.List;
  +import java.util.Map;
  +import java.util.Set;
  +import java.util.StringTokenizer;
  +import java.util.zip.ZipEntry;
  +import java.util.zip.ZipFile;
  +
   import junit.framework.TestCase;
  -import org.apache.log4j.*;
  +import org.apache.jmeter.NewDriver;
  +import org.apache.log4j.Category;
   /************************************************************
   
    *  This class finds classes that implement one or more specified interfaces.
  @@ -134,45 +147,30 @@
                Category.getInstance(ClassFinder.class.getName());
        private ClassFinder() {}
        // static only
  -     /************************************************************
  -     
  -      *  Convenience method for <code>findClassesThatExtend(Class[], boolean)</code>
  -     
  -      *  with the option to include inner classes in the search set to false
  -     
  -      *
  -     
  -      *@param  superClasses                Description of Parameter
  -     
  -      *@return                             ArrayList containing discovered classes.
  -     
  -      *@exception  IOException
  -     
  -      *@exception  ClassNotFoundException
        
  +     /************************************************************   
  +      *  Convenience method for <code>findClassesThatExtend(Class[], 
boolean)</code> 
  +      *  with the option to include inner classes in the search set to false 
  +      *      
  +      *@param  superClasses                Description of Parameter  
  +      *@return                             ArrayList containing discovered classes. 
 
  +      *@exception  IOException       
  +      *@exception  ClassNotFoundException    
         ***********************************************************/
        public static List findClassesThatExtend(Class[] superClasses)
                throws IOException, ClassNotFoundException {
                return findClassesThatExtend(superClasses, false);
        }
  -     /************************************************************
  -     
  -      *  Find classes in the provided path(s)/jar(s) that extend the class(es).
  -     
  -      *
  -     
  -      *@param  superClasses                Description of Parameter
  -     
  -      *@param  innerClasses                indicate whether to include inner classes
  -     
  -      *      in the search
  -     
  -      *@return                             ArrayList containing discovered classes.
        
  +     /************************************************************   
  +      *  Find classes in the provided path(s)/jar(s) that extend the class(es).     
 
  +      *      
  +      *@param  superClasses                Description of Parameter  
  +      *@param  innerClasses                indicate whether to include inner 
classes 
  +      *      in the search   
  +      *@return                             ArrayList containing discovered classes. 
 
         *@exception  IOException
  -     
  -      *@exception  ClassNotFoundException
  -     
  +      *@exception  ClassNotFoundException    
         ***********************************************************/
        private static String[] addJarsInPath(String[] paths) {
                Set fullList = new HashSet();
  @@ -197,17 +195,28 @@
                }
                return (String[]) fullList.toArray(new String[0]);
        }
  +     
        public static List findClassesThatExtend(
                Class[] superClasses,
                boolean innerClasses)
  -             throws IOException, ClassNotFoundException {
  +             throws IOException, ClassNotFoundException 
  +     {
                List listPaths = null;
                ArrayList listClasses = null;
                List listSuperClasses = null;
                String[] strPathsOrJars =
                        JMeterUtils.split(
  -                             JMeterUtils.getPropDefault("search_paths", 
".;ApacheJMeter_core.jar"),
  +                             JMeterUtils.getPropDefault("search_paths", "lib/ext"),
                                ";");
  +             // paths are relative to jmDir - convert to absolutec
  +             for (int i = 0; i < strPathsOrJars.length; i++) {
  +                     File file = new File(strPathsOrJars[i]);
  +                     if (!file.isAbsolute()) {
  +                             file = new File(JMeterUtils.getJMeterHome(),
  +                                     strPathsOrJars[i]);
  +                             strPathsOrJars[i] = file.getPath();
  +                     }
  +             }
                strPathsOrJars = addJarsInPath(strPathsOrJars);
                if (catClass.isDebugEnabled()) {
                        for (int k = 0; k < strPathsOrJars.length; k++) {
  
  
  
  1.11      +13 -2     jakarta-jmeter/src_1/org/apache/jmeter/util/JMeterUtils.java
  
  Index: JMeterUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/util/JMeterUtils.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- JMeterUtils.java  11 Jul 2002 00:57:15 -0000      1.10
  +++ JMeterUtils.java  12 Jul 2002 02:05:49 -0000      1.11
  @@ -974,6 +974,17 @@
                  return retVal.toString();
         }
         // End Method
  +      
  +      public static String getJMeterHome()
  +      {
  +             return jmDir;
  +      }
  +      
  +      public static void setJMeterHome(String home)
  +      {
  +             jmDir = home;
  +      }
  +      private static String jmDir;
   
   
         /**
  @@ -982,6 +993,6 @@
          */
         public static String getJMeterVersion()
         {
  -               return "@VERSION@";
  +               return "1.7.1";
         }
   }
  
  
  

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

Reply via email to