Package org.apache.jmeter.protocol.http.util.accesslog

# Class SessionFilter

java.lang.Object
org.apache.jmeter.protocol.http.util.accesslog.SessionFilter

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Filter`, `TestCloneable`, `ThreadListener`

@AutoService(Filter.class) public class SessionFilter extends Object implements Filter, Serializable, TestCloneable, ThreadListener
Provides Session Filtering for the AccessLog Sampler.

See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`SessionFilter()`
Creates a new SessionFilter and initializes its fields to new collections
`SessionFilter(Map<String,CookieManager> cookieManagers, Set<CookieManager> managersInUse)`
Creates a new SessionFilter, but re-uses the given collections

## Method Summary

Modifier and Type
Method
Description
`Object`
`clone()`
`void`
`excludeFiles(String[] filenames)`
Exclude all files in the array
`void`
`excludePattern(String[] regexp)`
Exclude any log entry that contains the following regular expression pattern.
`String`
`filter(String text)`
In case the user wants to replace the file extension, log parsers should call this method.
`protected CookieManager`
`getCookieManager(String ipAddr)`
`protected static String`
`getIpAddress(String logLine)`
`protected boolean`
`hasExcPattern(String text)`
`void`
`includeFiles(String[] filenames)`
Include all files in the array.
`void`
`includePattern(String[] regexp)`
Include any log entry that contains the following regular expression pattern.
`boolean`
`isFiltered(String path, org.apache.jmeter.testelement.TestElement sampler)`
Log parser will call this method to see if a particular entry should be filtered or not.
`void`
`reset()`
Tell the filter when the parsing has reached the end of the log file and is about to begin again.
`void`
`setReplaceExtension(String oldextension, String newextension)`
`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 java.lang.Object

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

## Constructor Details

### SessionFilter

public SessionFilter()
Creates a new SessionFilter and initializes its fields to new collections

### SessionFilter

public SessionFilter(Map<String,CookieManager> cookieManagers, Set<CookieManager> managersInUse)
Creates a new SessionFilter, but re-uses the given collections

Parameters:
  `cookieManagers` - `CookieManager`s to be used for the different IPs
  `managersInUse` - CookieManagers currently in use by other threads

## Method Details

### hasExcPattern

protected boolean hasExcPattern(String text)

### getIpAddress

protected static String getIpAddress(String logLine)

### reset

public void reset()
Tell the filter when the parsing has reached the end of the log file and is about to begin again. Gives the filter a chance to adjust it's values, if needed.

Specified by:
  `reset` in interface `Filter`

### clone

public Object clone()

Specified by:
  `clone` in interface `TestCloneable`
Overrides:
  `clone` in class `Object`

### excludeFiles

public void excludeFiles(String[] filenames)
Exclude all files in the array

Specified by:
  `excludeFiles` in interface `Filter`
Parameters:
  `filenames` - names of files to exclude

### excludePattern

public void excludePattern(String[] regexp)
Exclude any log entry that contains the following regular expression pattern.

Specified by:
  `excludePattern` in interface `Filter`
Parameters:
  `regexp` - list of regexp that match entries that should be excluded

### filter

public String filter(String text)
In case the user wants to replace the file extension, log parsers should call this method. This is useful for regression test plans. If a website is migrating from one platform to another and the file extension changes, the filter provides an easy way to do it without spending a lot of time.

Specified by:
  `filter` in interface `Filter`
Parameters:
  `text` - log line to be filtered
Returns:
  String

### includeFiles

public void includeFiles(String[] filenames)
Include all files in the array.

Specified by:
  `includeFiles` in interface `Filter`
Parameters:
  `filenames` - names of files to include

### includePattern

public void includePattern(String[] regexp)
Include any log entry that contains the following regular expression pattern.

Specified by:
  `includePattern` in interface `Filter`
Parameters:
  `regexp` - list of regexp that match entries that should be included

### isFiltered

public boolean isFiltered(String path, org.apache.jmeter.testelement.TestElement sampler)
Log parser will call this method to see if a particular entry should be filtered or not.

Specified by:
  `isFiltered` in interface `Filter`
Parameters:
  `path` - log line that should be checked if it should to be filtered out
  `sampler` - `TestElement` in which the line would be added
Returns:
  boolean `true` if line should be filtered out, `false` otherwise

### getCookieManager

protected CookieManager getCookieManager(String ipAddr)

### setReplaceExtension

public void setReplaceExtension(String oldextension, String newextension)

Specified by:
  `setReplaceExtension` in interface `Filter`
Parameters:
  `oldextension` - old extension
  `newextension` - new extension

### threadFinished

public void threadFinished()
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`

### threadStarted

public void threadStarted()
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`