mstover1    2003/02/18 12:36:52

  Modified:    src/core/org/apache/jmeter/config/gui ArgumentsPanel.java
  Added:       src/functions/org/apache/jmeter/functions JavaScript.java
                        MachineName.java
  Log:
  New functions (Javascript and MachineName) from Thad Smith
  
  Revision  Changes    Path
  1.5       +14 -2     
jakarta-jmeter/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
  
  Index: ArgumentsPanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ArgumentsPanel.java       18 Feb 2003 16:03:44 -0000      1.4
  +++ ArgumentsPanel.java       18 Feb 2003 20:36:52 -0000      1.5
  @@ -54,6 +54,7 @@
    */
   package org.apache.jmeter.config.gui;
   import java.awt.BorderLayout;
  +import java.awt.Component;
   import java.awt.Dimension;
   import java.awt.FlowLayout;
   import java.awt.event.ActionEvent;
  @@ -134,6 +135,11 @@
        {
                return table;
        }
  +    
  +    protected JLabel getTableLabel()
  +    {
  +        return tableLabel;
  +    }
        
        protected JButton getDeleteButton()
        {
  @@ -387,13 +393,19 @@
        {
                this.setLayout(new BorderLayout(0,0));
                this.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
  -             JPanel labelPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
  -             labelPanel.add(tableLabel);
  +             Component labelPanel = makeLabelPanel();
                this.add(labelPanel,BorderLayout.NORTH);
                this.addInnerPanel();
           table.revalidate();
           sizeColumns(table);
        }
  +
  +    protected Component makeLabelPanel()
  +    {
  +        JPanel labelPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
  +        labelPanel.add(tableLabel);
  +        return labelPanel;
  +    }
       
       protected void sizeColumns(JTable table)
       {
  
  
  
  1.1                  
jakarta-jmeter/src/functions/org/apache/jmeter/functions/JavaScript.java
  
  Index: JavaScript.java
  ===================================================================
  package org.apache.jmeter.functions;
  
  import java.io.Serializable;
  import java.util.Collection;
  import java.util.LinkedList;
  import java.util.List;
  
  import org.apache.jmeter.samplers.SampleResult;
  import org.apache.jmeter.samplers.Sampler;
  import org.apache.jmeter.threads.JMeterVariables;
  import org.apache.jmeter.util.JMeterUtils;
  import org.mozilla.javascript.Context;
  import org.mozilla.javascript.JavaScriptException;
  import org.mozilla.javascript.Scriptable;
  
  
  
  public class JavaScript extends AbstractFunction implements Serializable {
  
        private static final List desc = new LinkedList();
        private static final String KEY = "__javaScript";
        
        private String varName;
        private String script;
        
        static {
                desc.add("JavaScript expression to evaluate");
                desc.add(JMeterUtils.getResString("function_name_param"));
        }
  
  
        public JavaScript() {
  
        }
  
        public Object clone()   {
                JavaScript newJavaScript = new JavaScript();
                return newJavaScript;
        }
  
        /**
         * @see 
org.apache.jmeter.functions.Function#execute(org.apache.jmeter.samplers.SampleResult, 
org.apache.jmeter.samplers.Sampler)
         */
        public synchronized String execute(SampleResult previousResult, Sampler 
currentSampler)
                        throws InvalidVariableException {
  
                JMeterVariables vars = getVariables();
                String resultStr = "";
                
                Context cx = Context.enter();
                try {
  
                        Scriptable scope = cx.initStandardObjects(null);
                        Object result = cx.evaluateString(scope, script, "<cmd>", 1, 
null);
  
                        resultStr = Context.toString( result );
                        vars.put( varName, resultStr );
  
                
                } catch ( JavaScriptException e ) {
                        
                } finally {
                        Context.exit();
                }
                
  
                return resultStr;
  
        }
  
        /**
         * @see org.apache.jmeter.functions.Function#setParameters(java.lang.String)
         */
        public void setParameters(String parameters)
                        throws InvalidVariableException {
                                
                Collection params = this.parseArguments(parameters);
                String[] values = (String[])params.toArray(new String[0]);
                
                if ( values.length > 1 ) {
                        varName = values[values.length - 1];
                }
                
                try {
                        script = values[0];
                } catch ( Exception e ) {
                        throw new InvalidVariableException();
                }
  
  
        }
  
  
        /**
         * @see org.apache.jmeter.functions.Function#getReferenceKey()
         */
        public String getReferenceKey() {
                return KEY;
        }
  
  
        /**
         * @see org.apache.jmeter.functions.Function#getArgumentDesc()
         */
        public List getArgumentDesc() {
                return desc;
        }
  
  }
  
  
  
  
  
  
  1.1                  
jakarta-jmeter/src/functions/org/apache/jmeter/functions/MachineName.java
  
  Index: MachineName.java
  ===================================================================
  package org.apache.jmeter.functions;
  
  import java.io.Serializable;
  import java.net.InetAddress;
  import java.net.UnknownHostException;
  import java.util.Collection;
  import java.util.LinkedList;
  import java.util.List;
  
  import org.apache.jmeter.samplers.SampleResult;
  import org.apache.jmeter.samplers.Sampler;
  import org.apache.jmeter.threads.JMeterVariables;
  import org.apache.jmeter.util.JMeterUtils;
  
  
  
  public class MachineName extends AbstractFunction implements Serializable {
  
        private static final List desc = new LinkedList();
        private static final String KEY = "__machineName";
        private boolean fullHostName = false;
        
        private String varName;
        
        static {
                desc.add("Use fully qualified host name: TRUE/FALSE (Default FALSE)");
                desc.add(JMeterUtils.getResString("function_name_param"));
        }
  
  
        public MachineName() {}
  
        public Object clone()   {
                return new MachineName();
        }
  
        public synchronized String execute(SampleResult previousResult, Sampler 
currentSampler)
                        throws InvalidVariableException {
  
                JMeterVariables vars = getVariables();
                String machineName = "";
                
                try {
                        
                        InetAddress Address = InetAddress.getLocalHost();
                        
                        if ( fullHostName ) {
                                machineName = Address.getCanonicalHostName();
                        } else {
                                machineName = Address.getHostName();
                        }
                        
                } catch ( UnknownHostException e ) {
                }
                
                vars.put( varName, machineName );
                return machineName;
  
        }
  
        public void setParameters(String parameters)
                        throws InvalidVariableException {
                                
                Collection params = this.parseArguments(parameters);
                String[] values = (String[])params.toArray(new String[0]);
                
                if ( values.length > 0 ) {
  
                        if ( values[0].toLowerCase().equals("true") )
                                fullHostName = true;
  
                        varName = values[values.length - 1];
        
                }
  
        }
  
        public String getReferenceKey() {
                return KEY;
        }
  
        public List getArgumentDesc() {
                return desc;
        }
  
  }
  
  
  
  
  
  

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

Reply via email to