# 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, TestElement, TestStateListener`

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

See Also:
  - Serialized Form

## Field Summary

### Fields inherited from interface TestElement

`COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

## Constructor Summary

Constructors
Constructor
Description
`PublisherSampler()`

## Method Summary

Modifier and Type
Method
Description
`String`
`getConfigChoice()`
return the source of the message Converts from old JMX files which used the local language string
`String`
`getExpiration()`
`String`
`getFileContent(String path)`
The implementation uses TextFile to load the contents of the file and returns a string.
`String`
`getInputFile()`
`JMSProperties`
`getJMSProperties()`
`String`
`getMessageChoice()`
`String`
`getPriority()`
`String`
`getRandomPath()`
`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`
`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 BaseJMSSampler

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

### Methods inherited from class AbstractSampler

`applies`

### Methods inherited from class 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, 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 Object

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

### Methods inherited from interface TestElement

`addTestElement, canRemove, clear, clearTestElementChildren, clone, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse`

## Constructor Details

### PublisherSampler

public PublisherSampler()

## Method Details

### 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

### getFileContent

public String getFileContent(String path)
The implementation uses TextFile to load the contents of the file and returns a string.

Parameters:
  `path` - path to the file to read in
Returns:
  the contents of the file

### 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