Package org.apache.jmeter.protocol.jms.sampler

# Class PublisherSampler

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.samplers.AbstractSampler
org.apache.jmeter.protocol.jms.sampler.BaseJMSSampler
org.apache.jmeter.protocol.jms.sampler.PublisherSampler

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `ConfigMergabilityIndicator`, `Searchable`, `Sampler`, `org.apache.jmeter.testelement.TestElement`, `TestStateListener`

public class PublisherSampler extends BaseJMSSampler implements TestStateListener
This class implements the JMS Publisher sampler.

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElement

  `org.apache.jmeter.testelement.TestElement.Companion`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_ENCODING`
  Encoding value to sent parsed data but read with default system encoding
  `static final Set<String>`
  `NO_ENCODING`
  Constant for system default encodings
  `static final String`
  `RAW_DATA`
  Encoding value to sent data as is (no variabilisation)

  ### Fields inherited from interface org.apache.jmeter.testelement.TestElement

  `COMMENTS, Companion, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PublisherSampler()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected static com.github.benmanes.caffeine.cache.Cache<Object,Object>`
  `buildCache(String configChoice)`
  `String`
  `getConfigChoice()`
  return the source of the message Converts from old JMX files which used the local language string
  `String`
  `getExpiration()`
  `String`
  `getFileEncoding()`
  Gets file encoding to use.
  `String`
  `getInputFile()`
  `JMSProperties`
  `getJMSProperties()`
  `String`
  `getMessageChoice()`
  `String`
  `getPriority()`
  `String`
  `getRandomPath()`
  `static String[]`
  `getSupportedEncodings()`
  Init available encoding using constants, then JVM standard ones
  `String`
  `getTextMessage()`
  `boolean`
  `getUseNonPersistentDelivery()`
  `SampleResult`
  `sample()`
  The implementation will publish n messages within a for loop.
  `void`
  `setConfigChoice(String choice)`
  set the source of the message
  `void`
  `setExpiration(String s)`
  `void`
  `setFileEncoding(String fileEncoding)`
  Sets file encoding to use.
  `void`
  `setInputFile(String file)`
  set the input file for the publisher
  `void`
  `setJMSProperties(JMSProperties jmsProperties)`
  `void`
  `setMessageChoice(String choice)`
  set the type of the message
  `void`
  `setPriority(String s)`
  `void`
  `setRandomPath(String path)`
  set the random path for the messages
  `void`
  `setTextMessage(String message)`
  set the text for the message
  `void`
  `setUseNonPersistentDelivery(boolean value)`
  `void`
  `testEnded()`
  endTest cleans up the client
  `void`
  `testEnded(String host)`
  the implementation calls testEnded() without any parameters.
  `void`
  `testStarted()`
  Called just before the start of the test from the main engine thread.
  `void`
  `testStarted(String test)`
  the implementation calls testStarted() without any parameters.

  ### Methods inherited from class org.apache.jmeter.protocol.jms.sampler.BaseJMSSampler

  `configureIsReconnectErrorCode, getConnectionFactory, getDestination, getIsReconnectErrorCode, getIterationCount, getIterations, getJNDIInitialContextFactory, getMessageHeaders, getPassword, getProviderUrl, getReadResponse, getReadResponseAsBoolean, getReconnectionErrorCodes, getUseJNDIProperties, getUseJNDIPropertiesAsBoolean, getUsername, isDestinationStatic, isUseAuth, sample, setConnectionFactory, setDestination, setDestinationStatic, setIterations, setJNDIIntialContextFactory, setPassword, setProviderUrl, setReadResponse, setReconnectionErrorCodes, setUseAuth, setUseJNDIProperties, setUsername`

  ### Methods inherited from class org.apache.jmeter.samplers.AbstractSampler

  `applies`

  ### Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement

  `addPropertiesValues, addProperty, addProperty, addTestElement, canRemove, clear, clearTemporary, clearTestElementChildren, clone, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getPropertyOrNull, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty`

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

  `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.jmeter.testelement.TestElement

  `addTestElement, canRemove, clear, clearTestElementChildren, clone, get, get, get, get, get, get, get, get, get, getComment, getName, getOrCreate, getOrCreate, getOrNull, getOrNull, getOrNull, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getPropertyOrNull, getPropertyOrNull, getProps, getSchema, getString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removed, removeProperty, removeProperty, set, set, set, set, set, set, set, set, set, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse`

- ## Field Details

  - ### RAW_DATA

    public static final String RAW_DATA
    Encoding value to sent data as is (no variabilisation)
    See Also:
      - Constant Field Values

  - ### DEFAULT_ENCODING

    public static final String DEFAULT_ENCODING
    Encoding value to sent parsed data but read with default system encoding
    See Also:
      - Constant Field Values

  - ### NO_ENCODING

    public static final Set<String> NO_ENCODING
    Constant for system default encodings

- ## Constructor Details

  - ### PublisherSampler

    public PublisherSampler()

- ## Method Details

  - ### getSupportedEncodings

    public static String[] getSupportedEncodings()
    Init available encoding using constants, then JVM standard ones
    Returns:
      Array of String containing supported encodings

  - ### testStarted

    public void testStarted(String test)
    the implementation calls testStarted() without any parameters.
    Specified by:
      `testStarted` in interface `TestStateListener`
    Parameters:
      `test` - name of host
    See Also:
      - `StandardJMeterEngine.run()`

  - ### testEnded

    public void testEnded(String host)
    the implementation calls testEnded() without any parameters.
    Specified by:
      `testEnded` in interface `TestStateListener`
    Parameters:
      `host` - name of host
    See Also:
      - `StandardJMeterEngine.stopTest()`

  - ### testEnded

    public void testEnded()
    endTest cleans up the client
    Specified by:
      `testEnded` in interface `TestStateListener`
    See Also:
      - `StandardJMeterEngine.stopTest()`

  - ### testStarted

    public void testStarted()
    Description copied from interface: `TestStateListener`

    Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

    N.B. testStarted() and testEnded() are called from different threads.

    Specified by:
      `testStarted` in interface `TestStateListener`
    See Also:
      - `StandardJMeterEngine.run()`

  - ### sample

    public SampleResult sample()
    The implementation will publish n messages within a for loop. Once n messages are published, it sets the attributes of SampleResult.
    Specified by:
      `sample` in class `BaseJMSSampler`
    Returns:
      the populated sample result

  - ### buildCache

    protected static com.github.benmanes.caffeine.cache.Cache<Object,Object> buildCache(String configChoice)

  - ### setConfigChoice

    public void setConfigChoice(String choice)
    set the source of the message
    Parameters:
      `choice` - source of the messages. One of `JMSPublisherGui.USE_FILE_RSC`, `JMSPublisherGui.USE_RANDOM_RSC` or JMSPublisherGui#USE_TEXT_RSC

  - ### getConfigChoice

    public String getConfigChoice()
    return the source of the message Converts from old JMX files which used the local language string
    Returns:
      source of the messages

  - ### setMessageChoice

    public void setMessageChoice(String choice)
    set the type of the message
    Parameters:
      `choice` - type of the message (Text, Object, Map)

  - ### getMessageChoice

    public String getMessageChoice()
    Returns:
      the type of the message (Text, Object, Map)

  - ### setInputFile

    public void setInputFile(String file)
    set the input file for the publisher
    Parameters:
      `file` - input file for the publisher

  - ### getInputFile

    public String getInputFile()
    Returns:
      the path of the input file

  - ### setRandomPath

    public void setRandomPath(String path)
    set the random path for the messages
    Parameters:
      `path` - random path for the messages

  - ### getRandomPath

    public String getRandomPath()
    Returns:
      the random path for messages

  - ### setTextMessage

    public void setTextMessage(String message)
    set the text for the message
    Parameters:
      `message` - text for the message

  - ### getTextMessage

    public String getTextMessage()
    Returns:
      the text for the message

  - ### getExpiration

    public String getExpiration()

  - ### getPriority

    public String getPriority()

  - ### setPriority

    public void setPriority(String s)

  - ### setExpiration

    public void setExpiration(String s)

  - ### setUseNonPersistentDelivery

    public void setUseNonPersistentDelivery(boolean value)
    Parameters:
      `value` - boolean use NON_PERSISTENT

  - ### getUseNonPersistentDelivery

    public boolean getUseNonPersistentDelivery()
    Returns:
      true if NON_PERSISTENT delivery must be used

  - ### getJMSProperties

    public JMSProperties getJMSProperties()
    Returns:
      `JMSProperties` JMS Properties

  - ### setJMSProperties

    public void setJMSProperties(JMSProperties jmsProperties)
    Parameters:
      `jmsProperties` - JMS Properties

  - ### getFileEncoding

    public String getFileEncoding()
    Gets file encoding to use. If `RAW_DATA`, content isn't parsed.
    Returns:
      File encoding.
    See Also:
      - `RAW_DATA`
      - `DEFAULT_ENCODING`
      - `getSupportedEncodings()`

  - ### setFileEncoding

    public void setFileEncoding(String fileEncoding)
    Sets file encoding to use. If `RAW_DATA`, content isn't parsed.
    Parameters:
      `fileEncoding` - File encoding.
    See Also:
      - `RAW_DATA`
      - `DEFAULT_ENCODING`
      - `getSupportedEncodings()`