# Class ProxyControl

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.control.GenericController
org.apache.jmeter.protocol.http.proxy.ProxyControl

All Implemented Interfaces:
  `Serializable, Cloneable, Controller, Searchable, TestElement, TestCompilerHelper`

public class ProxyControl extends GenericController
Class handles storing of generated samples, etc

See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`ProxyControl.KeystoreMode`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`DEFAULT_PORT`
`static final String`
`DEFAULT_PORT_S`

### Fields inherited from class GenericController

`current, subControllersAndSamplers`

### Fields inherited from interface TestElement

`COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

## Constructor Summary

Constructors
Constructor
Description
`ProxyControl()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addConfigElement(ConfigElement config)`
`void`
`addExcludedPattern(String pattern)`
`void`
`addIncludedPattern(String pattern)`
`boolean`
`canRemove()`
Called by Remove to determine if it is safe to remove the element.
`void`
`clearExcludedPatterns()`
`void`
`clearIncludedPatterns()`
`void`
`deliverSampler(HTTPSamplerBase sampler, TestElement[] subConfigs, SampleResult result)`
Receives the recorded sampler from the proxy server for placing in the test tree; this is skipped if the sampler is null (e.g. for recording SSL errors) Always sends the result to any registered sample listeners.
`JMeterTreeNode`
`findTargetControllerNode()`
Finds the controller where samplers have to be stored, that is: The controller specified by the `target` property.
`boolean`
`getAssertions()`
`boolean`
`getCaptureHttpHeaders()`
`String[]`
`getCertificateDetails()`
`String`
`getContentTypeExclude()`
`String`
`getContentTypeInclude()`
`int`
`getDefaultPort()`
`CollectionProperty`
`getExcludePatterns()`
`int`
`getGroupingMode()`
`CollectionProperty`
`getIncludePatterns()`
`boolean`
`getNotifyChildSamplerListenerOfFilteredSamplers()`
`int`
`getPort()`
`String`
`getPortString()`
`boolean`
`getRegexMatch()`
`boolean`
`getSamplerDownloadImages()`
`boolean`
`getSamplerFollowRedirects()`
`boolean`
`getSamplerRedirectAutomatically()`
`String`
`getSamplerTypeName()`
`String`
`getSslDomains()`
`JMeterTreeNode`
`getTarget()`
`boolean`
`getUseKeepalive()`
`static boolean`
`isDynamicMode()`
`void`
`setAssertions(boolean b)`
`void`
`setCaptureHttpHeaders(boolean capture)`
`void`
`setContentTypeExclude(String contentTypeExclude)`
`void`
`setContentTypeInclude(String contentTypeInclude)`
`void`
`setExcludeList(Collection<String> list)`
`void`
`setGroupingMode(int grouping)`
`void`
`setIncludeList(Collection<String> list)`
`void`
`setNotifyChildSamplerListenerOfFilteredSamplers(boolean b)`
`void`
`setPort(int port)`
`void`
`setPort(String port)`
`void`
`setRegexMatch(boolean b)`
`void`
`setSamplerDownloadImages(boolean b)`
`void`
`setSamplerFollowRedirects(boolean b)`
`void`
`setSamplerRedirectAutomatically(boolean b)`
`void`
`setSamplerTypeName(int samplerTypeName)`
Deprecated.
`void`
`setSamplerTypeName(String samplerTypeName)`
`void`
`setSslDomains(String domains)`
`void`
`setTarget(JMeterTreeNode target)`
Sets the target node where the samples generated by the proxy have to be stored.
`void`
`setUseKeepAlive(boolean b)`
`void`
`startProxy()`
`void`
`stopProxy()`

### Methods inherited from class GenericController

`addIterationListener, addTestElement, addTestElementOnce, currentReturnedNull, fireIterationStart, fireIterEvents, getCurrentElement, getIterCount, getSubControllers, incrementCurrent, incrementIterCount, initialize, initializeSubControllers, isDone, isFirst, next, nextIsAController, nextIsASampler, nextIsNull, readResolve, reInitialize, reInitializeSubController, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, setDone, setFirst, triggerEndOfLoop`

### Methods inherited from class AbstractTestElement

`addPropertiesValues, addProperty, addProperty, 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

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

## Field Details

### DEFAULT_PORT

public static final int DEFAULT_PORT

See Also:
  - Constant Field Values

### DEFAULT_PORT_S

public static final String DEFAULT_PORT_S

## Constructor Details

### ProxyControl

public ProxyControl()

## Method Details

### setPort

public void setPort(int port)

### setPort

public void setPort(String port)

### setSslDomains

public void setSslDomains(String domains)

### getSslDomains

public String getSslDomains()

### setCaptureHttpHeaders

public void setCaptureHttpHeaders(boolean capture)

### setGroupingMode

public void setGroupingMode(int grouping)

### setAssertions

public void setAssertions(boolean b)

### setSamplerTypeName

@Deprecated public void setSamplerTypeName(int samplerTypeName)
Deprecated.

### setSamplerTypeName

public void setSamplerTypeName(String samplerTypeName)

### setSamplerRedirectAutomatically

public void setSamplerRedirectAutomatically(boolean b)

### setSamplerFollowRedirects

public void setSamplerFollowRedirects(boolean b)

### setUseKeepAlive

public void setUseKeepAlive(boolean b)

Parameters:
  `b` - flag whether keep alive should be used

### setSamplerDownloadImages

public void setSamplerDownloadImages(boolean b)

### setNotifyChildSamplerListenerOfFilteredSamplers

public void setNotifyChildSamplerListenerOfFilteredSamplers(boolean b)

### setIncludeList

public void setIncludeList(Collection<String> list)

### setExcludeList

public void setExcludeList(Collection<String> list)

### setRegexMatch

public void setRegexMatch(boolean b)

Parameters:
  `b` - flag whether regex matching should be used

### setContentTypeExclude

public void setContentTypeExclude(String contentTypeExclude)

### setContentTypeInclude

public void setContentTypeInclude(String contentTypeInclude)

### getAssertions

public boolean getAssertions()

### getGroupingMode

public int getGroupingMode()

### getPort

public int getPort()

### getPortString

public String getPortString()

### getDefaultPort

public int getDefaultPort()

### getCaptureHttpHeaders

public boolean getCaptureHttpHeaders()

### getSamplerTypeName

public String getSamplerTypeName()

### getSamplerRedirectAutomatically

public boolean getSamplerRedirectAutomatically()

### getSamplerFollowRedirects

public boolean getSamplerFollowRedirects()

### getUseKeepalive

public boolean getUseKeepalive()

### getSamplerDownloadImages

public boolean getSamplerDownloadImages()

### getNotifyChildSamplerListenerOfFilteredSamplers

public boolean getNotifyChildSamplerListenerOfFilteredSamplers()

### getRegexMatch

public boolean getRegexMatch()

### getContentTypeExclude

public String getContentTypeExclude()

### getContentTypeInclude

public String getContentTypeInclude()

### addConfigElement

public void addConfigElement(ConfigElement config)

### startProxy

public void startProxy() throws IOException

Throws:
  `IOException`

### addExcludedPattern

public void addExcludedPattern(String pattern)

### getExcludePatterns

public CollectionProperty getExcludePatterns()

### addIncludedPattern

public void addIncludedPattern(String pattern)

### getIncludePatterns

public CollectionProperty getIncludePatterns()

### clearExcludedPatterns

public void clearExcludedPatterns()

### clearIncludedPatterns

public void clearIncludedPatterns()

### getTarget

public JMeterTreeNode getTarget()

Returns:
  the target controller node

### setTarget

public void setTarget(JMeterTreeNode target)
Sets the target node where the samples generated by the proxy have to be stored.

Parameters:
  `target` - target node to store generated samples

### deliverSampler

public void deliverSampler(HTTPSamplerBase sampler, TestElement[] subConfigs, SampleResult result)
Receives the recorded sampler from the proxy server for placing in the test tree; this is skipped if the sampler is null (e.g. for recording SSL errors) Always sends the result to any registered sample listeners.

Parameters:
  `sampler` - the sampler, may be null
  `subConfigs` - the configuration elements to be added (e.g. header namager)
  `result` - the sample result, not null TODO param serverResponse to be added to allow saving of the server's response while recording.

### stopProxy

public void stopProxy()

### getCertificateDetails

public String[] getCertificateDetails()

### findTargetControllerNode

public JMeterTreeNode findTargetControllerNode()
Finds the controller where samplers have to be stored, that is:

- The controller specified by the `target` property.
- If none was specified, the first RecordingController in the tree.
- If none is found, the first AbstractThreadGroup in the tree.
- If none is found, the Workspace.

Returns:
  the tree node for the controller where the proxy must store the generated samplers.

### canRemove

public boolean canRemove()
Description copied from class: `AbstractTestElement`
Called by Remove to determine if it is safe to remove the element. The element can either clean itself up, and return true, or the element can return false.

Specified by:
  `canRemove` in interface `TestElement`
Overrides:
  `canRemove` in class `AbstractTestElement`
Returns:
  true if safe to remove the element

### isDynamicMode

public static boolean isDynamicMode()