org.apache.jmeter.functions

## Class Jexl3Function

- java.lang.Object
- - org.apache.jmeter.functions.AbstractFunction
  - - org.apache.jmeter.functions.Jexl3Function

- All Implemented Interfaces:
    Function, ThreadListener

      public class Jexl3Function
      extends AbstractFunction
      implements ThreadListener

  A function which understands Commons JEXL3
  Since:
    3.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Jexl3Function()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `execute(SampleResult previousResult, Sampler currentSampler)` N.B.
    `List<String>` | `getArgumentDesc()` Return a list of strings briefly describing each parameter your function takes.
    `String` | `getReferenceKey()` Return the name of your function.
    `void` | `setParameters(Collection<CompoundVariable> parameters)` Note: This is always called even if no parameters are provided (versions of JMeter after 2.3.1)
    `void` | `threadFinished()` Called for each thread after all samples have been processed.
    `void` | `threadStarted()` Called for each thread before starting sampling.

    - ### Methods inherited from class org.apache.jmeter.functions.AbstractFunction

      `addVariableValue, checkMinParameterCount, checkParameterCount, checkParameterCount, execute, getVariables`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Jexl3Function

          public Jexl3Function()

  - ### Method Detail

    - #### execute

          public String execute(SampleResult previousResult,
                                Sampler currentSampler)
                         throws InvalidVariableException

      N.B. execute() should be synchronized if function is operating with non-thread-safe objects (e.g. operates with files).

      JMeter ensures setParameters() happens-before execute(): setParameters is executed in main thread, and worker threads are started after that.
      Specified by:
        `execute` in interface `Function`
      Specified by:
        `execute` in class `AbstractFunction`
      Parameters:
        `previousResult` - The previous `SampleResult`
        `currentSampler` - The current `Sampler`
      Returns:
        The replacement value, which was generated by the function
      Throws:
        `InvalidVariableException` - - when the variables for the function call can't be evaluated
      See Also:
        `Function.execute(SampleResult, Sampler)`

    - #### getArgumentDesc

          public List<String> getArgumentDesc()

      Return a list of strings briefly describing each parameter your function takes. Please use JMeterUtils.getResString(resource_name) to grab a resource string. Otherwise, your help text will be difficult to internationalize. This list is not optional. If you don't wish to write help, you must at least return a List containing the correct number of blank strings, one for each argument.
      Specified by:
        `getArgumentDesc` in interface `Function`
      Returns:
        List with brief descriptions for each parameter the function takes

    - #### getReferenceKey

          public String getReferenceKey()

      Return the name of your function. Convention is to prepend "__" to the name (ie "__regexFunction")
      Specified by:
        `getReferenceKey` in interface `Function`
      Specified by:
        `getReferenceKey` in class `AbstractFunction`
      Returns:
        The name of the function
      See Also:
        `Function.getReferenceKey()`

    - #### setParameters

          public void setParameters(Collection<CompoundVariable> parameters)
                             throws InvalidVariableException

      Note: This is always called even if no parameters are provided (versions of JMeter after 2.3.1)
      Specified by:
        `setParameters` in interface `Function`
      Specified by:
        `setParameters` in class `AbstractFunction`
      Parameters:
        `parameters` - The parameters for the function call
      Throws:
        `InvalidVariableException` - - when the variables for the function call can't be evaluated
      See Also:
        `Function.setParameters(Collection)`

    - #### threadStarted

          public void threadStarted()

      Description copied from interface: `ThreadListener`
      Called for each thread before starting sampling. WARNING: this is called before any Config test elements are processed, so any properties they define will not have been merged in yet. See org.apache.jmeter.threads.JMeterThread#threadStarted()
      Specified by:
        `threadStarted` in interface `ThreadListener`

    - #### threadFinished

          public void threadFinished()

      Description copied from interface: `ThreadListener`
      Called for each thread after all samples have been processed. See org.apache.jmeter.threads.JMeterThread#threadFinished(org.apache.jmeter.engine.event.LoopIterationListener)
      Specified by:
        `threadFinished` in interface `ThreadListener`

Copyright © 1998-2021 Apache Software Foundation. All Rights Reserved.