You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by mi...@apache.org on 2017/04/15 15:57:27 UTC

svn commit: r1791516 - in /jmeter/trunk/xdocs: changes.xml changes_history.xml

Author: milamber
Date: Sat Apr 15 15:57:27 2017
New Revision: 1791516

URL: http://svn.apache.org/viewvc?rev=1791516&view=rev
Log:
Move 3.2 release notes to changes_history. Start 3.3 release notes.

Modified:
    jmeter/trunk/xdocs/changes.xml
    jmeter/trunk/xdocs/changes_history.xml

Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1791516&r1=1791515&r2=1791516&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Sat Apr 15 15:57:27 2017
@@ -39,9 +39,9 @@ Earlier changes are detailed in the <a h
 </note>
 
 
-<!--  =================== 3.2 =================== -->
+<!--  =================== 3.3 =================== -->
 
-<h1>Version 3.2</h1>
+<h1>Version 3.3</h1>
 <p>
 Summary
 </p>
@@ -63,310 +63,65 @@ Summary
 <!-- <figure width="846" height="613" image="changes/3.0/view_results_tree_search_feature.png"></figure> -->
 
 <ch_section>IMPORTANT CHANGES</ch_section>
-<p>
-JMeter now requires Java 8. Ensure you use the most up to date version.
-</p>
-<p>
-JMeter logging has been migrated to SLF4J and Log4j 2.
-This affects configuration and 3<sup>rd</sup> party plugins, see below <b>"Logging changes"</b>.
-</p>
+
 <ch_title>Core improvements</ch_title>
-<ul>
-<li>JMeter now provides a new BackendListener implementation that interfaces InfluxDB.
-<figure width="813" height="407" image="changes/3.2/backend_influxdb.png"></figure>
-This implementation sends data using Asynchronous HTTP calls to InfluxDB through its <a href="https://docs.influxdata.com/influxdb/v1.2/guides/writing_data/">HTTP API</a>
-and give you the following graphs with annotations:
-<figure width="934" height="399" image="backend_listener_influxdb_graph.png"></figure>
-</li>
-<li>DNS Cache Manager now has a table to allow static host resolution.
-<figure width="803" height="561" image="changes/3.2/dns_cache_manager_static_hosts.png"></figure>
-</li>
-<li>JMS Publisher and Subscriber now allow reconnection on error with pause.
-<figure width="852" height="738" image="changes/3.2/jms_publisher_reconnect.png"></figure>
-<figure width="716" height="538" image="changes/3.2/jms_subscriber_reconnect_pause.png"></figure>
-</li>
-<li>Variables in JMS Publisher are now supported for all types of messages. Add the encoding type of the file to parse its content</li>
-<figure width="750" height="743" image="changes/3.2/jms_subscriber_content_encoding.png"></figure>
-<li>XPath Extractor now allows extraction randomly, by index or for all matches.
-<figure width="823" height="348" image="changes/3.2/xpath_extractor_matchno.png"></figure>
-</li>
-<li>Response Assertion now allows to work on Request Header, provides a "OR" combination and has a better cell renderer
-<figure width="1053" height="329" image="changes/3.2/response_assertion.png"></figure>
-</li>
-<li>JMeter now uses Oracle Nashorn Javascript engine instead of Rhino. This provides a faster execution of Javascript.</li>
-<li>HTTP HC4 Implementation now provides preemptive Basic Auth enabled by default</li>
-<li>Embedded resources download in CSS has been improved to avoid useless repetitive parsing to find the resources</li>
-<li>An important work on code quality and code coverage with tests has been done since Sonar has been setup on the project.
-You can see Sonar report <a href="https://builds.apache.org/analysis/overview?id=12927" >here</a>.
-</li>
-</ul>
 
 <ch_title>UX improvements</ch_title>
-<ul>
-<li>When running a Test, GUI is now more responsive and less impacting on memory usage thanks to a limitation on the number of Sample Results 
-listeners hold and a rework of the way GUI is updated</li>
-<li>HTTP Request GUI has been simplified and provides more place for parameters and body.
-<figure width="848" height="475" image="changes/3.2/http_request.png"></figure>
-</li>
-<li>HTTP(S) Test Script Recorder has been simplified and clarified.
-<figure width="1023" height="494" image="changes/3.2/http_recorder_1.png"></figure>
-<figure width="1021" height="711" image="changes/3.2/http_recorder_2.png"></figure>
-</li>
-<li>A <code>replace</code> feature has been added to Search feature to allow replacement in some elements.
-<figure width="459" height="196" image="changes/3.2/search_replace.png"></figure>
-</li>
-<li>View Results Tree now provides a more up to date Browser renderer which requires JavaFX.</li>
-<li>You can now add through a contextual menu think times, this will add think times between samplers and Transaction Controllers
- of selected node.
- <figure width="326" height="430" image="changes/3.2/menu_add_think_times.png"></figure>
- </li>
-<li>You can now apply a naming policy to children of a Transaction Controller. A default policy exists but you can implement your own 
-    through <code><a href="./api/org/apache/jmeter/gui/action/TreeNodeNamingPolicy.html" >org.apache.jmeter.gui.action.TreeNodeNamingPolicy</a></code>
-    and configuring property <code>naming_policy.impl</code>
-<figure width="327" height="518" image="changes/3.2/menu_apply_naming_policy.png"></figure>    
-</li>
-<li>Sorting per column has been added to View Results in Table, Summary Report, Aggregate Report and Aggregate Graph elements.
-<figure width="1065" height="369" image="changes/3.2/sorting.png"></figure>
-</li>
-</ul>
 
 <ch_title>Report/Dashboard improvements</ch_title>
-<ul>
-<li>
-Statistics have been reorganized to clarify report:
-<figure width="1548" height="366" image="dashboard/report_statistics.png"></figure>
-</li>
-<li>
-It is now possible to customize APDEX thresholds per transaction based on regular expression or sample name.
-The below example will apply different thresholds for samples sample(\\d+), sampleA and scenarioB 
-than default ones (500 and 1500 for satisfied and tolerated thresholds) declared:
-<source>
-jmeter.reportgenerator.apdex_satisfied_threshold=500
-jmeter.reportgenerator.apdex_tolerated_threshold=1500
-jmeter.reportgenerator.apdex_per_transaction=sample(\\d+):1000|2000;\
-    sampleA:3000|4000;\
-    scenarioB:5000|6000
-</source>
-</li>
-</ul>
 
 <ch_title>Documentation improvements</ch_title>
-<ul>
-<li>PDF Documentations have been migrated and updated to HTML user manual</li>
-</ul>
 
 <!-- =================== Incompatible changes =================== -->
 
 <ch_section>Incompatible changes</ch_section>
 
-<ul>
-    <li>JMeter requires now at least a Java 8 version to run.</li>
-    <li>JMeter logging has been migrated to SLF4J and Log4j 2, this involves changes in the way configuration is done. JMeter now relies on standard
-    <a href="https://logging.apache.org/log4j/2.x/manual/configuration.html">Log4j 2 configuration</a> in file <code>log4j2.xml</code>
-    See <code>Logging changes</code> section below for further details.
-    </li>
-    <li>The following jars have been removed after migration from LogKit to SLF4J (see <bugzilla>60589</bugzilla>):
-        <ul>
-            <li>ApacheJMeter_slf4j_logkit.jar</li>
-            <li>avalon-framework-4.1.4.jar</li>
-            <li>avalon-framework-4.1.4.jar</li>
-            <li>commons-logging-1.2.jar</li>
-            <li>excalibur-logger-1.1.jar</li>
-            <li>logkit-2.0.jar</li>
-        </ul>
-    </li>
-    <li>The <code>commons-httpclient-3.1.jar</code> has been removed after drop of HC3.1 support(see <bugzilla>60727</bugzilla>)</li>
-    <li>JMeter now sets through <code>-Djava.security.egd=file:/dev/urandom</code> the algorithm for secure random</li>
-    <li>Process Sampler now returns error code 500 when an error occurs. It previously returned an empty value.</li>
-    <li>In <code>org.apache.jmeter.protocol.http.sampler.HTTPHCAbstractImpl</code> two protected static fields (<code>localhost</code> and <code>nonProxyHostSuffixSize</code>) have been renamed to (<code>LOCALHOST</code> and <code>NON_PROXY_HOST_SUFFIX_SIZE</code>) 
-        to follow static fields naming convention</li>
-    <li>JMeter now uses by default Oracle Nashorn engine instead of Mozilla Rhino for better performances. This should not have an impact unless
-    you use some advanced features. You can revert back to Rhino by settings property <code>javascript.use_rhino=true</code>. 
-    You can read this <a href="https://wiki.openjdk.java.net/display/Nashorn/Rhino+Migration+Guide">migration guide</a> for more details on Nashorn. See <bugzilla>60672</bugzilla></li>
-    <li><bug>60729</bug>The Random Variable Config Element now allows minimum==maximum. Previous versions logged an error when minimum==maximum and did not set the configured variable.</li>
-    <li><bug>60730</bug>The JSON PostProcessor now sets the <code>_ALL</code> variable (assuming <code>Compute concatenation var</code> was checked)
-    even if the JSON path matches only once. Previous versions did not set the <code>_ALL</code> variable in this case.</li>
-</ul>
-
 <h3>Removed elements or functions</h3>
-<ul>
-    <li>SOAP/XML-RPC Request has been removed as part of <bugzilla>60727</bugzilla>. Use HTTP Request element as a replacement. 
-    See <a href="./build-ws-test-plan.html" >Building a WebService Test Plan</a></li>
-    <li><bug>60423</bug>Drop Monitor Results listener </li>
-    <li>Drop deprecated class <code>org.apache.jmeter.protocol.system.NativeCommand</code></li>
-    <li>Drop deprecated class <code>org.apache.jmeter.protocol.http.config.gui.MultipartUrlConfigGui</code></li>
-    <li>Drop deprecated class <code>org.apache.jmeter.testelement.TestListener</code></li>
-    <li>Drop deprecated class <code>org.apache.jmeter.reporters.FileReporter</code></li>
-    <li>Drop deprecated class <code>org.apache.jmeter.protocol.http.modifier.UserSequence</code></li>
-    <li>Drop deprecated class <code>org.apache.jmeter.protocol.http.parser.HTMLParseError</code></li>
-    <li>Drop unused methods <code>org.apache.jmeter.protocol.http.control.HeaderManager#getSOAPHeader</code>
-    and <code>org.apache.jmeter.protocol.http.control.HeaderManager#setSOAPHeader(Object)</code>
-    </li>
-    <li><code>org.apache.jmeter.protocol.http.util.Base64Encode</code> has been deprecated, you can use <code>java.util.Base64</code> as a replacement</li>
-</ul>
 
 <h3>Logging changes</h3>
-<p>
-    JMeter logging has been migrated to SLF4J and Log4j 2.
-    This affects logging configuration and 3<sup>rd</sup> party plugins (if they use JMeter logging).
-    The following sections describe what changes need to be made.
-</p>
-
-<h4>Setting the logging level and log file</h4>
-<p>
-    The default logging level can be changed on the command-line using the <code>-L</code> parameter.
-    Likewise the <code>-l</code> parameter can be used to change the name of the log file.
-    However the <code>log_level</code> properties no longer work.
-</p>
-<p>
-    The default logging levels and file name are defined in the <code>log4j2.xml</code> configuration file
-    in the launch directory (usually <code>JMETER_HOME/bin</code>)
-</p>
-<p>
-    <note>If you need to change the level programmatically from Groovy code or Beanshell, you need to do the following:
-    <source>
-    import org.apache.logging.log4j.core.config.Configurator;
-    &vellip;
-    final String loggerName = te.getClass().getName(); // te being a JMeter class
-    Configurator.setAllLevels(loggerName, Level.DEBUG); 
-    </source>
-    </note>
-</p>
 
-<h4>Changes to 3<sup>rd</sup> party plugin logging</h4>
-<p>
-    <note>3rd party plugins should migrate their logging code from logkit to slf4j. This is fairly easy and can be done by replacing:
-    <source>
-        import org.apache.jorphan.logging.LoggingManager;
-        import org.apache.log.Logger;
-        &vellip;
-        private static final Logger log = LoggingManager.getLoggerForClass();
-    </source>
-    By:
-    <source>
-        import org.slf4j.Logger;
-        import org.slf4j.LoggerFactory;
-        &vellip;
-        private static final Logger log = LoggerFactory.getLogger(YourClassName.class);
-    </source>
-    </note>
-</p>
 <!-- =================== Improvements =================== -->
 
 <ch_section>Improvements</ch_section>
 
 <h3>HTTP Samplers and Test Script Recorder</h3>
 <ul>
-    <li><bug>59934</bug>Fix race-conditions in CssParser. Based on a patch by Jerome Loisel (loisel.jerome at gmail.com)</li>
-    <li><bug>60543</bug>HTTP Request / Http Request Defaults UX: Move to advanced panel Timeouts, Implementation, Proxy. Implemented by Philippe Mouawad (p.mouawad at ubik-ingenierie.com) and contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>60548</bug>HTTP Request : Allow Upper Panel to be collapsed</li>
-    <li><bug>57242</bug>HTTP Authorization is not pre-emptively set with HttpClient4</li>
-    <li><bug>60727</bug>Drop commons-httpclient-3.1 and related elements. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>60790</bug>HTTP(S) Test Script Recorder : Improve information on certificate expiration and have better UX for Start/Stop</li>
-    <li><bug>60888</bug>HttpRequest : Add option to allow retrial of all requests including NON Idempotent HTTP methods</li>
-    <li><bug>60896</bug>HTTP(S) Test Script Recorder : Improve UX by reducing number of properties on screen</li>
 </ul>
 
 <h3>Other samplers</h3>
 <ul>
-    <li><bug>60740</bug>Support variable for all JMS messages (bytes, object, &hellip;) and sources (file, folder), based on <pr>241</pr>. Contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
-    <li><bug>60585</bug>JMS Publisher and JMS Subscriber : Allow reconnection on error and pause between errors. Based on <pr>240</pr> from by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
-    <li><pr>259</pr> - Refactored and reformatted SmtpSampler. Contributed by Graham Russell (graham at ham1.co.uk)</li>
 </ul>
 
 <h3>Controllers</h3>
 <ul>
-    <li><bug>60672</bug>JavaScript function / IfController : use Nashorn engine by default</li>
 </ul>
 
 <h3>Listeners</h3>
 <ul>
-    <li><bug>60144</bug>View Results Tree : Add a more up to date Browser Renderer to replace old Render</li>
-    <li><bug>60542</bug>View Results Tree : Allow Upper Panel to be collapsed. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>52962</bug>Allow sorting by columns for View Results in Table, Summary Report, Aggregate Report and Aggregate Graph. Based on a <pr>245</pr> by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
-    <li><bug>60590</bug>BackendListener : Add Influxdb BackendListenerClient implementation to JMeter. Partly based on <pr>246</pr> by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
-    <li><bug>60591</bug>BackendListener : Add a time boxed sampling. Based on a <pr>237</pr> by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
-    <li><bug>60678</bug>View Results Tree : Text renderer, search should not popup "Text Not Found"</li>
-    <li><bug>60691</bug>View Results Tree : In Renderers (XPath, JSON Path Tester, RegExp Tester and CSS/JQuery Tester) lower panel is sometimes not visible as upper panel is too big and cannot be resized</li>
-    <li><bug>60687</bug>Make GUI more responsive when it gets a lot of events.</li>
-    <li><bug>60791</bug>View Results Tree: Trigger search on Enter key in Search Feature and display red background if no match</li>
-    <li><bug>60822</bug>ResultCollector does not ensure unique file name entries in files HashMap</li>
 </ul>
 
 <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
 <ul>
-    <li><bug>60154</bug>User Parameters GUI: allow rows to be moved up &amp; down in the list. Contributed by Murdecai777 (https://github.com/Murdecai777).</li>
-    <li><bug>60507</bug>Added '<code>Or</code>' Function into ResponseAssertion. Based on a contribution from \u5ffb\u9686 (298015902 at qq.com)</li>
-    <li><bug>58943</bug>Create a Better Think Time experience. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>60602</bug>XPath Extractor : Add Match No. to allow extraction randomly, by index or all matches</li>
-    <li><bug>60710</bug>XPath Extractor : When content on which assertion applies is not XML, in View Results Tree the extractor is marked in Red and named SAXParseException. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>60712</bug>Response Assertion : Improve Renderer of Patterns</li>
-    <li><bug>59174</bug>Add a table with static hosts to the DNS Cache Manager. This enables better virtual hosts testing with HttpClient4.</li>
 </ul>
 
 <h3>Functions</h3>
 <ul>
-    <li><bug>60883</bug><pr>288</pr> - Add <code>${__escapeXml()}</code> function. Contributed by Michael Osipov (michaelo at apache.org)</li>
 </ul>
 
 <h3>I18N</h3>
 <ul>
-    <li>Improve translation "<code>save_as</code>" in French. Based on a <pr>252</pr> by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
-    <li><bug>60785</bug>Improvement of Japanese translation. Patch by Kimono (kimono.outfit.am at gmail.com).</li>
 </ul>
 
 <h3>Report / Dashboard</h3>
 <ul>
-    <li><bug>60637</bug>Improve Statistics table design <figure image="dashboard/report_statistics.png" ></figure></li>
-    <li><bug>60112</bug>Report / Dashboard : Add ability to customize APDEX thresholds per Transaction name. Contributed by Stephane Leplus (s.leplus at ubik-ingenierie.com)</li>
 </ul>
 
 <h3>General</h3>
 <ul>
-    <li><bug>58164</bug>Check if file already exists on ResultCollector listener before starting the loadtest</li>
-    <li><bug>54525</bug>Search Feature : Enhance it with ability to replace</li>
-    <li><bug>60530</bug>Add API to create JMeter threads while test is running. Based on a contribution by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
-    <li><bug>60514</bug>Ability to apply a naming convention on Children of a Transaction Controller. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>60711</bug>Improve Delete button behaviour for Assertions / Header Manager / User Parameters GUIs / Exclude, Include in HTTP(S) Test Script Recorder</li>
-    <li><bug>60593</bug>Switch to G1 GC algorithm</li>
-    <li><bug>60595</bug>Add a SplashScreen at the start of JMeter GUI. Contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
-    <li><bug>55258</bug>Drop "Close" icon from toolbar and add "New" to menu. Partly based on contribution from Sanduni Kanishka (https://github.com/SanduniKanishka)</li>
-    <li><bug>59995</bug>Allow user to change font size with two new menu items and use <code>jmeter.hidpi.scale.factor</code> for scaling fonts. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>60654</bug>Validation Feature : Be able to ignore BackendListener. Contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
-    <li><bug>60646</bug>Workbench : Save it by default</li>
-    <li><bug>60684</bug>Thread Group: Validate ended prematurely by Scheduler with 0 or very short duration. Contributed by Andrew Burton (andrewburtonatwh at gmail.com).</li>
-    <li><bug>60589</bug>Migrate LogKit to SLF4J - Drop Avalon, LogKit and Excalibur with backward compatibility for 3<sup>rd</sup> party modules. Contributed by Woonsan Ko (woonsan at apache.org)</li>
-    <li><bug>60565</bug>Migrate LogKit to SLF4J - Optimize logging statements. e.g, message format args, throwable args, unnecessary if-enabled-logging in simple ones, etc. Contributed by Woonsan Ko (woonsan at apache.org)</li>
-    <li><bug>60564</bug>Migrate LogKit to SLF4J - Replace LogKit loggers with SLF4J ones and keep the current LogKit binding solution for backward compatibility with plugins. Contributed by Woonsan Ko (woonsan at apache.org)</li>
-    <li><bug>60664</bug>Add a UI menu to set log level. Contributed by Woonsan Ko (woonsan at apache.org)</li>
-    <li><pr>276</pr> - Added some translations for polish locale. Contributed by Bartosz Siewniak (barteksiewniak at gmail.com)</li>
-    <li><bug>60792</bug>Create a new Help menu item to create a thread dump</li>
-    <li><bug>60813</bug>JSR223 Test element : Take into account JMeterStopTestNowException, JMeterStopTestException and JMeterStopThreadException</li>
-    <li><bug>60814</bug>Menu : Add <code>Open Recent</code> menu item to make recent files loading more obvious</li>
-    <li><bug>60815</bug>Drop "Reset GUI" from menu</li>
-    <li><bug>60886</bug>Build improvements to better enable builds in environments that are behind a proxy. Partly contributed by Michael Osipov (michaelo at apache.org)</li>
 </ul>
 
 <ch_section>Non-functional changes</ch_section>
 <ul>
-    <li><bug>60415</bug>Drop support for Java 7.</li>
-    <li>Updated to dnsjava-2.1.8.jar (from 2.1.7)</li>
-    <li>Updated to groovy 2.4.10 (from 2.4.7)</li>
-    <li>Updated to httpcore 4.4.6 (from 4.4.5)</li>
-    <li>Updated to httpclient 4.5.3 (from 4.5.2)</li>
-    <li>Updated to jodd 3.8.1 (from 3.7.1.jar)</li>
-    <li>Updated to jsoup-1.10.2 (from 1.10.1)</li>
-    <li>Updated to ph-css 5.0.3 (from 4.1.6)</li>
-    <li>Updated to ph-commons 8.6.0 (from 6.2.4)</li>
-    <li>Updated to slf4j-api 1.7.25 (from 1.7.21)</li>
-    <li>Updated to asm 5.2 (from 5.1)</li>
-    <li>Updated to rsyntaxtextarea-2.6.1 (from 2.6.0)</li>
-    <li>Updated to commons-net-3.6 (from 3.5)</li>
-    <li>Updated to json-smart-2.3 (from 2.2.1)</li>
-    <li>Updated to accessors-smart-1.2 (from 1.1)</li>
-    <li>Converted the old pdf tutorials to xml.</li>
-    <li><pr>255</pr> - Utilised Java 8 (and 7) features to tidy up code. Contributed by Graham Russell (graham at ham1.co.uk)</li>
-    <li><bug>59435</bug>JMeterTestCase no longer supports JUnit3</li>
 </ul>
 
  <!-- =================== Bug fixes =================== -->
@@ -375,25 +130,10 @@ jmeter.reportgenerator.apdex_per_transac
 
 <h3>HTTP Samplers and Test Script Recorder</h3>
 <ul>
-    <li><bug>60531</bug>HTTP Cookie Manager : changing Implementation does not update Cookie Policy</li>
-    <li><bug>60575</bug>HTTP GET Requests could have a content-type header without a body.</li>
-    <li><bug>60682</bug>HTTP Request : Get method may fail on redirect due to Content-Length header being set</li>
-    <li><bug>60643</bug>HTTP(S) Test Script Recorder doesn't correctly handle restart or start after stop. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>60652</bug>HTTP PUT Requests might leak file descriptors.</li>
-    <li><bug>60689</bug><code>httpclient4.validate_after_inactivity</code> has no impact leading to usage of potentially stale/closed connections</li>
-    <li><bug>60690</bug>Default values for "httpclient4.validate_after_inactivity" and "httpclient4.time_to_live" which are equal to each other makes validation useless</li>
-    <li><bug>60758</bug>HTTP(s) Test Script Recorder : Number request may generate duplicate numbers. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>56939</bug>Parameters are not passed with OPTIONS HTTP Request</li>
-    <li><bug>60778</bug>Http Java Impl does not show Authorization header in SampleResult even if it is sent</li>
-    <li><bug>60837</bug>GET with body, PUT are not retried even if <code>httpclient4.retrycount</code> is higher than 0</li>
-    <li><bug>60842</bug>Trim extracted URLs when loading embedded resources using the Lagarto based HTML Parser.</li>
-    <li><bug>60928</bug>Http Request : Connection Leak when keepalive is used with Embedded Resources</li>
 </ul>
 
 <h3>Other Samplers</h3>
 <ul>
-    <li><bug>603982</bug>Guard Exception handler of the <code>JDBCSampler</code> against null messages</li>
-    <li><bug>55652</bug>JavaSampler silently resets classname if class can not be found</li>
 </ul>
 
 <h3>Controllers</h3>
@@ -402,27 +142,14 @@ jmeter.reportgenerator.apdex_per_transac
 
 <h3>Listeners</h3>
 <ul>
-    <li><bug>60648</bug>GraphiteBackendListener can lose some metrics at end of test if test is very short</li>
-    <li><bug>60650</bug>AbstractBackendListenerClient does not reset UserMetric between runs</li>
-    <li><bug>60759</bug>View Results Tree : Search feature does not search in URL. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
-    <li><bug>60859</bug>Save Responses to a file : 2 elements with different configuration will overlap</li>
 </ul>
 
 <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
 <ul>
-    <li><bug>60438</bug><pr>235</pr> - Clear old variables before extracting new ones in JSON Extractor.
-    Based on a patch by Qi Chen (qi.chensh at ele.me)</li>
-    <li><bug>60607</bug>DNS Cache Manager configuration is ignored</li>
-    <li><bug>60729</bug>The Random Variable Config Element should allow minimum==maximum</li>
-    <li><bug>60730</bug>The JSON PostProcessor should set the <code>_ALL</code> variable even if the JSON path matches only once.</li>
-    <li><bug>60747</bug>Response Assertion : Add Request Headers to <code>Field to Test</code></li>
-    <li><bug>60763</bug>XMLAssertion should not leak errors to console</li>
-    <li><bug>60797</bug>TestAction in pause mode can last beyond configured duration of test</li>
 </ul>
 
 <h3>Functions</h3>
 <ul>
-    <li><bug>60819</bug>Function __fileToString does not honor the documentation contract when file is not found</li>
 </ul>
 
 <h3>I18N</h3>
@@ -431,26 +158,10 @@ jmeter.reportgenerator.apdex_per_transac
 
 <h3>Report / Dashboard</h3>
 <ul>
-    <li><bug>60726</bug>Report / Dashboard : Top 5 errors by samplers must not take into account the series filtering</li>
-    <li><bug>60919</bug>Report / Dashboard : Latency Vs Request and Response Time Vs Request are wrong if granularity is different from 1000 (1 second)</li>
 </ul>
     
 <h3>General</h3>
 <ul>
-    <li><bug>60775</bug>NamePanel ctor calls overrideable method</li>
-    <li><bug>60428</bug>JMeter Graphite Backend Listener throws exception when test ends
-    and <code>useRegexpForSamplersList</code> is set to <code>true</code>.
-    Based on patch by Liu XP (liu_xp2003 at sina.com)</li>
-    <li><bug>60442</bug>Fix a typo in <code>build.xml</code> (gavin at 16degrees.com.au)</li>
-    <li><bug>60449</bug>JMeter Tree : Annoying behaviour when node name is empty</li>
-    <li><bug>60494</bug>Add sonar analysis task to build</li>
-    <li><bug>60501</bug>Search Feature : Performance issue when regexp is checked</li>
-    <li><bug>60444</bug>Intermittent failure of <code>TestHTTPMirrorThread#testSleep()</code>. Contributed by Thomas Schapitz (ts-nospam12 at online.de)</li>
-    <li><bug>60621</bug>The "<code>report-template</code>" folder is missing from <code>ApacheJMeter_config-3.1.jar</code> in maven central</li>
-    <li><bug>60744</bug>GUI elements are not cleaned up when reused during load of Test Plan which can lead them to be partially initialized with a previous state for a new Test Element</li>
-    <li><bug>60812</bug>JMeterThread does not honor contract of JMeterStopTestNowException</li>
-    <li><bug>60857</bug>SaveService omits XML header if _file_encoding is not defined in saveservice.properties</li>
-    <li><bug>60830</bug>Timestamps in CSV file could be corrupted due to sharing a SimpleDateFormatter across threads</li>
 </ul>
 
  <!--  =================== Thanks =================== -->
@@ -459,30 +170,10 @@ jmeter.reportgenerator.apdex_per_transac
 <p>We thank all contributors mentioned in bug and improvement sections above:
 </p>
 <ul>
-<li>Jerome Loisel (loisel.jerome at gmail.com)</li>
-<li>Liu XP (liu_xp2003 at sina.com)</li>
-<li>Qi Chen (qi.chensh at ele.me)</li>
-<li>(gavin at 16degrees.com.au)</li>
-<li>Thomas Schapitz (ts-nospam12 at online.de)</li>
-<li>Murdecai777 (https://github.com/Murdecai777)</li>
-<li>Logan Mauzaize (logan.mauzaize at gmail.com)</li>
-<li>Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>
-<li>\u5ffb\u9686 (298015902 at qq.com)</li>
-<li><a href="http://ubikloadpack.com">Ubik Load Pack</a></li>
-<li>Graham Russell (graham at ham1.co.uk)</li>
-<li>Sanduni Kanishka (https://github.com/SanduniKanishka)</li>
-<li>Andrew Burton (andrewburtonatwh at gmail.com)</li>
-<li>Woonsan Ko (woonsan at apache.org)</li>
-<li>Bartosz Siewniak (barteksiewniak at gmail.com)</li>
-<li>Kimono (kimono.outfit.am at gmail.com)</li>
-<li>Michael Osipov (michaelo at apache.org)</li>
-<li>Stephane Leplus (s.leplus at ubik-ingenierie.com)</li>
 </ul>
 <p>We also thank bug reporters who helped us improve JMeter. <br/>
 For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:</p>
 <ul>
-<li>Tuukka Mustonen (tuukka.mustonen at gmail.com) who gave us a lot of useful feedback which helped resolve <bugzilla>60689</bugzilla> and <bugzilla>60690</bugzilla></li>
-<li>Amar Darisa (amar.darisa at gmail.com) who helped us with his feedback on <bugzilla>60682</bugzilla></li>
 </ul>
 <p>
 Apologies if we have omitted anyone else.

Modified: jmeter/trunk/xdocs/changes_history.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes_history.xml?rev=1791516&r1=1791515&r2=1791516&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes_history.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes_history.xml [utf-8] Sat Apr 15 15:57:27 2017
@@ -39,6 +39,516 @@ Current changes are detailed in <a href=
 <p><b>Changes sections are chronologically ordered from top (most recent) to bottom 
 (least recent)</b></p>
 
+<!--  =================== 3.2 =================== -->
+
+<h1>Version 3.2</h1>
+<p>
+Summary
+</p>
+<ul>
+<li><a href="#New and Noteworthy">New and Noteworthy</a></li>
+<li><a href="#Incompatible changes">Incompatible changes</a></li>
+<li><a href="#Bug fixes">Bug fixes</a></li>
+<li><a href="#Improvements">Improvements</a></li>
+<li><a href="#Non-functional changes">Non-functional changes</a></li>
+<li><a href="#Known problems and workarounds">Known problems and workarounds</a></li>
+<li><a href="#Thanks">Thanks</a></li>
+
+</ul>
+
+<ch_section>New and Noteworthy</ch_section>
+
+<!-- <ch_category>Sample category</ch_category> -->
+<!-- <ch_title>Sample title</ch_title> -->
+<!-- <figure width="846" height="613" image="changes/3.0/view_results_tree_search_feature.png"></figure> -->
+
+<ch_section>IMPORTANT CHANGES</ch_section>
+<p>
+JMeter now requires Java 8. Ensure you use the most up to date version.
+</p>
+<p>
+JMeter logging has been migrated to SLF4J and Log4j 2.
+This affects configuration and 3<sup>rd</sup> party plugins, see below <b>"Logging changes"</b>.
+</p>
+<ch_title>Core improvements</ch_title>
+<ul>
+<li>JMeter now provides a new BackendListener implementation that interfaces InfluxDB.
+<figure width="813" height="407" image="changes/3.2/backend_influxdb.png"></figure>
+This implementation sends data using Asynchronous HTTP calls to InfluxDB through its <a href="https://docs.influxdata.com/influxdb/v1.2/guides/writing_data/">HTTP API</a>
+and give you the following graphs with annotations:
+<figure width="934" height="399" image="backend_listener_influxdb_graph.png"></figure>
+</li>
+<li>DNS Cache Manager now has a table to allow static host resolution.
+<figure width="803" height="561" image="changes/3.2/dns_cache_manager_static_hosts.png"></figure>
+</li>
+<li>JMS Publisher and Subscriber now allow reconnection on error with pause.
+<figure width="852" height="738" image="changes/3.2/jms_publisher_reconnect.png"></figure>
+<figure width="716" height="538" image="changes/3.2/jms_subscriber_reconnect_pause.png"></figure>
+</li>
+<li>Variables in JMS Publisher are now supported for all types of messages. Add the encoding type of the file to parse its content</li>
+<figure width="750" height="743" image="changes/3.2/jms_subscriber_content_encoding.png"></figure>
+<li>XPath Extractor now allows extraction randomly, by index or for all matches.
+<figure width="823" height="348" image="changes/3.2/xpath_extractor_matchno.png"></figure>
+</li>
+<li>Response Assertion now allows to work on Request Header, provides a "OR" combination and has a better cell renderer
+<figure width="1053" height="329" image="changes/3.2/response_assertion.png"></figure>
+</li>
+<li>JMeter now uses Oracle Nashorn Javascript engine instead of Rhino. This provides a faster execution of Javascript.</li>
+<li>HTTP HC4 Implementation now provides preemptive Basic Auth enabled by default</li>
+<li>Embedded resources download in CSS has been improved to avoid useless repetitive parsing to find the resources</li>
+<li>An important work on code quality and code coverage with tests has been done since Sonar has been setup on the project.
+You can see Sonar report <a href="https://builds.apache.org/analysis/overview?id=12927" >here</a>.
+</li>
+</ul>
+
+<ch_title>UX improvements</ch_title>
+<ul>
+<li>When running a Test, GUI is now more responsive and less impacting on memory usage thanks to a limitation on the number of Sample Results 
+listeners hold and a rework of the way GUI is updated</li>
+<li>HTTP Request GUI has been simplified and provides more place for parameters and body.
+<figure width="848" height="475" image="changes/3.2/http_request.png"></figure>
+</li>
+<li>HTTP(S) Test Script Recorder has been simplified and clarified.
+<figure width="1023" height="494" image="changes/3.2/http_recorder_1.png"></figure>
+<figure width="1021" height="711" image="changes/3.2/http_recorder_2.png"></figure>
+</li>
+<li>A <code>replace</code> feature has been added to Search feature to allow replacement in some elements.
+<figure width="459" height="196" image="changes/3.2/search_replace.png"></figure>
+</li>
+<li>View Results Tree now provides a more up to date Browser renderer which requires JavaFX.</li>
+<li>You can now add through a contextual menu think times, this will add think times between samplers and Transaction Controllers
+ of selected node.
+ <figure width="326" height="430" image="changes/3.2/menu_add_think_times.png"></figure>
+ </li>
+<li>You can now apply a naming policy to children of a Transaction Controller. A default policy exists but you can implement your own 
+    through <code><a href="./api/org/apache/jmeter/gui/action/TreeNodeNamingPolicy.html" >org.apache.jmeter.gui.action.TreeNodeNamingPolicy</a></code>
+    and configuring property <code>naming_policy.impl</code>
+<figure width="327" height="518" image="changes/3.2/menu_apply_naming_policy.png"></figure>    
+</li>
+<li>Sorting per column has been added to View Results in Table, Summary Report, Aggregate Report and Aggregate Graph elements.
+<figure width="1065" height="369" image="changes/3.2/sorting.png"></figure>
+</li>
+</ul>
+
+<ch_title>Report/Dashboard improvements</ch_title>
+<ul>
+<li>
+Statistics have been reorganized to clarify report:
+<figure width="1548" height="366" image="dashboard/report_statistics.png"></figure>
+</li>
+<li>
+It is now possible to customize APDEX thresholds per transaction based on regular expression or sample name.
+The below example will apply different thresholds for samples sample(\\d+), sampleA and scenarioB 
+than default ones (500 and 1500 for satisfied and tolerated thresholds) declared:
+<source>
+jmeter.reportgenerator.apdex_satisfied_threshold=500
+jmeter.reportgenerator.apdex_tolerated_threshold=1500
+jmeter.reportgenerator.apdex_per_transaction=sample(\\d+):1000|2000;\
+    sampleA:3000|4000;\
+    scenarioB:5000|6000
+</source>
+</li>
+</ul>
+
+<ch_title>Documentation improvements</ch_title>
+<ul>
+<li>PDF Documentations have been migrated and updated to HTML user manual</li>
+</ul>
+
+<!-- =================== Incompatible changes =================== -->
+
+<ch_section>Incompatible changes</ch_section>
+
+<ul>
+    <li>JMeter requires now at least a Java 8 version to run.</li>
+    <li>JMeter logging has been migrated to SLF4J and Log4j 2, this involves changes in the way configuration is done. JMeter now relies on standard
+    <a href="https://logging.apache.org/log4j/2.x/manual/configuration.html">Log4j 2 configuration</a> in file <code>log4j2.xml</code>
+    See <code>Logging changes</code> section below for further details.
+    </li>
+    <li>The following jars have been removed after migration from LogKit to SLF4J (see <bugzilla>60589</bugzilla>):
+        <ul>
+            <li>ApacheJMeter_slf4j_logkit.jar</li>
+            <li>avalon-framework-4.1.4.jar</li>
+            <li>avalon-framework-4.1.4.jar</li>
+            <li>commons-logging-1.2.jar</li>
+            <li>excalibur-logger-1.1.jar</li>
+            <li>logkit-2.0.jar</li>
+        </ul>
+    </li>
+    <li>The <code>commons-httpclient-3.1.jar</code> has been removed after drop of HC3.1 support(see <bugzilla>60727</bugzilla>)</li>
+    <li>JMeter now sets through <code>-Djava.security.egd=file:/dev/urandom</code> the algorithm for secure random</li>
+    <li>Process Sampler now returns error code 500 when an error occurs. It previously returned an empty value.</li>
+    <li>In <code>org.apache.jmeter.protocol.http.sampler.HTTPHCAbstractImpl</code> two protected static fields (<code>localhost</code> and <code>nonProxyHostSuffixSize</code>) have been renamed to (<code>LOCALHOST</code> and <code>NON_PROXY_HOST_SUFFIX_SIZE</code>) 
+        to follow static fields naming convention</li>
+    <li>JMeter now uses by default Oracle Nashorn engine instead of Mozilla Rhino for better performances. This should not have an impact unless
+    you use some advanced features. You can revert back to Rhino by settings property <code>javascript.use_rhino=true</code>. 
+    You can read this <a href="https://wiki.openjdk.java.net/display/Nashorn/Rhino+Migration+Guide">migration guide</a> for more details on Nashorn. See <bugzilla>60672</bugzilla></li>
+    <li><bug>60729</bug>The Random Variable Config Element now allows minimum==maximum. Previous versions logged an error when minimum==maximum and did not set the configured variable.</li>
+    <li><bug>60730</bug>The JSON PostProcessor now sets the <code>_ALL</code> variable (assuming <code>Compute concatenation var</code> was checked)
+    even if the JSON path matches only once. Previous versions did not set the <code>_ALL</code> variable in this case.</li>
+</ul>
+
+<h3>Removed elements or functions</h3>
+<ul>
+    <li>SOAP/XML-RPC Request has been removed as part of <bugzilla>60727</bugzilla>. Use HTTP Request element as a replacement. 
+    See <a href="./build-ws-test-plan.html" >Building a WebService Test Plan</a></li>
+    <li><bug>60423</bug>Drop Monitor Results listener </li>
+    <li>Drop deprecated class <code>org.apache.jmeter.protocol.system.NativeCommand</code></li>
+    <li>Drop deprecated class <code>org.apache.jmeter.protocol.http.config.gui.MultipartUrlConfigGui</code></li>
+    <li>Drop deprecated class <code>org.apache.jmeter.testelement.TestListener</code></li>
+    <li>Drop deprecated class <code>org.apache.jmeter.reporters.FileReporter</code></li>
+    <li>Drop deprecated class <code>org.apache.jmeter.protocol.http.modifier.UserSequence</code></li>
+    <li>Drop deprecated class <code>org.apache.jmeter.protocol.http.parser.HTMLParseError</code></li>
+    <li>Drop unused methods <code>org.apache.jmeter.protocol.http.control.HeaderManager#getSOAPHeader</code>
+    and <code>org.apache.jmeter.protocol.http.control.HeaderManager#setSOAPHeader(Object)</code>
+    </li>
+    <li><code>org.apache.jmeter.protocol.http.util.Base64Encode</code> has been deprecated, you can use <code>java.util.Base64</code> as a replacement</li>
+</ul>
+
+<h3>Logging changes</h3>
+<p>
+    JMeter logging has been migrated to SLF4J and Log4j 2.
+    This affects logging configuration and 3<sup>rd</sup> party plugins (if they use JMeter logging).
+    The following sections describe what changes need to be made.
+</p>
+
+<h4>Setting the logging level and log file</h4>
+<p>
+    The default logging level can be changed on the command-line using the <code>-L</code> parameter.
+    Likewise the <code>-l</code> parameter can be used to change the name of the log file.
+    However the <code>log_level</code> properties no longer work.
+</p>
+<p>
+    The default logging levels and file name are defined in the <code>log4j2.xml</code> configuration file
+    in the launch directory (usually <code>JMETER_HOME/bin</code>)
+</p>
+<p>
+    <note>If you need to change the level programmatically from Groovy code or Beanshell, you need to do the following:
+    <source>
+    import org.apache.logging.log4j.core.config.Configurator;
+    &vellip;
+    final String loggerName = te.getClass().getName(); // te being a JMeter class
+    Configurator.setAllLevels(loggerName, Level.DEBUG); 
+    </source>
+    </note>
+</p>
+
+<h4>Changes to 3<sup>rd</sup> party plugin logging</h4>
+<p>
+    <note>3rd party plugins should migrate their logging code from logkit to slf4j. This is fairly easy and can be done by replacing:
+    <source>
+        import org.apache.jorphan.logging.LoggingManager;
+        import org.apache.log.Logger;
+        &vellip;
+        private static final Logger log = LoggingManager.getLoggerForClass();
+    </source>
+    By:
+    <source>
+        import org.slf4j.Logger;
+        import org.slf4j.LoggerFactory;
+        &vellip;
+        private static final Logger log = LoggerFactory.getLogger(YourClassName.class);
+    </source>
+    </note>
+</p>
+<!-- =================== Improvements =================== -->
+
+<ch_section>Improvements</ch_section>
+
+<h3>HTTP Samplers and Test Script Recorder</h3>
+<ul>
+    <li><bug>59934</bug>Fix race-conditions in CssParser. Based on a patch by Jerome Loisel (loisel.jerome at gmail.com)</li>
+    <li><bug>60543</bug>HTTP Request / Http Request Defaults UX: Move to advanced panel Timeouts, Implementation, Proxy. Implemented by Philippe Mouawad (p.mouawad at ubik-ingenierie.com) and contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>60548</bug>HTTP Request : Allow Upper Panel to be collapsed</li>
+    <li><bug>57242</bug>HTTP Authorization is not pre-emptively set with HttpClient4</li>
+    <li><bug>60727</bug>Drop commons-httpclient-3.1 and related elements. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>60790</bug>HTTP(S) Test Script Recorder : Improve information on certificate expiration and have better UX for Start/Stop</li>
+    <li><bug>60888</bug>HttpRequest : Add option to allow retrial of all requests including NON Idempotent HTTP methods</li>
+    <li><bug>60896</bug>HTTP(S) Test Script Recorder : Improve UX by reducing number of properties on screen</li>
+</ul>
+
+<h3>Other samplers</h3>
+<ul>
+    <li><bug>60740</bug>Support variable for all JMS messages (bytes, object, &hellip;) and sources (file, folder), based on <pr>241</pr>. Contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
+    <li><bug>60585</bug>JMS Publisher and JMS Subscriber : Allow reconnection on error and pause between errors. Based on <pr>240</pr> from by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
+    <li><pr>259</pr> - Refactored and reformatted SmtpSampler. Contributed by Graham Russell (graham at ham1.co.uk)</li>
+</ul>
+
+<h3>Controllers</h3>
+<ul>
+    <li><bug>60672</bug>JavaScript function / IfController : use Nashorn engine by default</li>
+</ul>
+
+<h3>Listeners</h3>
+<ul>
+    <li><bug>60144</bug>View Results Tree : Add a more up to date Browser Renderer to replace old Render</li>
+    <li><bug>60542</bug>View Results Tree : Allow Upper Panel to be collapsed. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>52962</bug>Allow sorting by columns for View Results in Table, Summary Report, Aggregate Report and Aggregate Graph. Based on a <pr>245</pr> by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
+    <li><bug>60590</bug>BackendListener : Add Influxdb BackendListenerClient implementation to JMeter. Partly based on <pr>246</pr> by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
+    <li><bug>60591</bug>BackendListener : Add a time boxed sampling. Based on a <pr>237</pr> by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
+    <li><bug>60678</bug>View Results Tree : Text renderer, search should not popup "Text Not Found"</li>
+    <li><bug>60691</bug>View Results Tree : In Renderers (XPath, JSON Path Tester, RegExp Tester and CSS/JQuery Tester) lower panel is sometimes not visible as upper panel is too big and cannot be resized</li>
+    <li><bug>60687</bug>Make GUI more responsive when it gets a lot of events.</li>
+    <li><bug>60791</bug>View Results Tree: Trigger search on Enter key in Search Feature and display red background if no match</li>
+    <li><bug>60822</bug>ResultCollector does not ensure unique file name entries in files HashMap</li>
+</ul>
+
+<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
+<ul>
+    <li><bug>60154</bug>User Parameters GUI: allow rows to be moved up &amp; down in the list. Contributed by Murdecai777 (https://github.com/Murdecai777).</li>
+    <li><bug>60507</bug>Added '<code>Or</code>' Function into ResponseAssertion. Based on a contribution from \u5ffb\u9686 (298015902 at qq.com)</li>
+    <li><bug>58943</bug>Create a Better Think Time experience. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>60602</bug>XPath Extractor : Add Match No. to allow extraction randomly, by index or all matches</li>
+    <li><bug>60710</bug>XPath Extractor : When content on which assertion applies is not XML, in View Results Tree the extractor is marked in Red and named SAXParseException. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>60712</bug>Response Assertion : Improve Renderer of Patterns</li>
+    <li><bug>59174</bug>Add a table with static hosts to the DNS Cache Manager. This enables better virtual hosts testing with HttpClient4.</li>
+</ul>
+
+<h3>Functions</h3>
+<ul>
+    <li><bug>60883</bug><pr>288</pr> - Add <code>${__escapeXml()}</code> function. Contributed by Michael Osipov (michaelo at apache.org)</li>
+</ul>
+
+<h3>I18N</h3>
+<ul>
+    <li>Improve translation "<code>save_as</code>" in French. Based on a <pr>252</pr> by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
+    <li><bug>60785</bug>Improvement of Japanese translation. Patch by Kimono (kimono.outfit.am at gmail.com).</li>
+</ul>
+
+<h3>Report / Dashboard</h3>
+<ul>
+    <li><bug>60637</bug>Improve Statistics table design <figure image="dashboard/report_statistics.png" ></figure></li>
+    <li><bug>60112</bug>Report / Dashboard : Add ability to customize APDEX thresholds per Transaction name. Contributed by Stephane Leplus (s.leplus at ubik-ingenierie.com)</li>
+</ul>
+
+<h3>General</h3>
+<ul>
+    <li><bug>58164</bug>Check if file already exists on ResultCollector listener before starting the loadtest</li>
+    <li><bug>54525</bug>Search Feature : Enhance it with ability to replace</li>
+    <li><bug>60530</bug>Add API to create JMeter threads while test is running. Based on a contribution by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
+    <li><bug>60514</bug>Ability to apply a naming convention on Children of a Transaction Controller. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>60711</bug>Improve Delete button behaviour for Assertions / Header Manager / User Parameters GUIs / Exclude, Include in HTTP(S) Test Script Recorder</li>
+    <li><bug>60593</bug>Switch to G1 GC algorithm</li>
+    <li><bug>60595</bug>Add a SplashScreen at the start of JMeter GUI. Contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
+    <li><bug>55258</bug>Drop "Close" icon from toolbar and add "New" to menu. Partly based on contribution from Sanduni Kanishka (https://github.com/SanduniKanishka)</li>
+    <li><bug>59995</bug>Allow user to change font size with two new menu items and use <code>jmeter.hidpi.scale.factor</code> for scaling fonts. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>60654</bug>Validation Feature : Be able to ignore BackendListener. Contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
+    <li><bug>60646</bug>Workbench : Save it by default</li>
+    <li><bug>60684</bug>Thread Group: Validate ended prematurely by Scheduler with 0 or very short duration. Contributed by Andrew Burton (andrewburtonatwh at gmail.com).</li>
+    <li><bug>60589</bug>Migrate LogKit to SLF4J - Drop Avalon, LogKit and Excalibur with backward compatibility for 3<sup>rd</sup> party modules. Contributed by Woonsan Ko (woonsan at apache.org)</li>
+    <li><bug>60565</bug>Migrate LogKit to SLF4J - Optimize logging statements. e.g, message format args, throwable args, unnecessary if-enabled-logging in simple ones, etc. Contributed by Woonsan Ko (woonsan at apache.org)</li>
+    <li><bug>60564</bug>Migrate LogKit to SLF4J - Replace LogKit loggers with SLF4J ones and keep the current LogKit binding solution for backward compatibility with plugins. Contributed by Woonsan Ko (woonsan at apache.org)</li>
+    <li><bug>60664</bug>Add a UI menu to set log level. Contributed by Woonsan Ko (woonsan at apache.org)</li>
+    <li><pr>276</pr> - Added some translations for polish locale. Contributed by Bartosz Siewniak (barteksiewniak at gmail.com)</li>
+    <li><bug>60792</bug>Create a new Help menu item to create a thread dump</li>
+    <li><bug>60813</bug>JSR223 Test element : Take into account JMeterStopTestNowException, JMeterStopTestException and JMeterStopThreadException</li>
+    <li><bug>60814</bug>Menu : Add <code>Open Recent</code> menu item to make recent files loading more obvious</li>
+    <li><bug>60815</bug>Drop "Reset GUI" from menu</li>
+    <li><bug>60886</bug>Build improvements to better enable builds in environments that are behind a proxy. Partly contributed by Michael Osipov (michaelo at apache.org)</li>
+</ul>
+
+<ch_section>Non-functional changes</ch_section>
+<ul>
+    <li><bug>60415</bug>Drop support for Java 7.</li>
+    <li>Updated to dnsjava-2.1.8.jar (from 2.1.7)</li>
+    <li>Updated to groovy 2.4.10 (from 2.4.7)</li>
+    <li>Updated to httpcore 4.4.6 (from 4.4.5)</li>
+    <li>Updated to httpclient 4.5.3 (from 4.5.2)</li>
+    <li>Updated to jodd 3.8.1 (from 3.7.1.jar)</li>
+    <li>Updated to jsoup-1.10.2 (from 1.10.1)</li>
+    <li>Updated to ph-css 5.0.3 (from 4.1.6)</li>
+    <li>Updated to ph-commons 8.6.0 (from 6.2.4)</li>
+    <li>Updated to slf4j-api 1.7.25 (from 1.7.21)</li>
+    <li>Updated to asm 5.2 (from 5.1)</li>
+    <li>Updated to rsyntaxtextarea-2.6.1 (from 2.6.0)</li>
+    <li>Updated to commons-net-3.6 (from 3.5)</li>
+    <li>Updated to json-smart-2.3 (from 2.2.1)</li>
+    <li>Updated to accessors-smart-1.2 (from 1.1)</li>
+    <li>Converted the old pdf tutorials to xml.</li>
+    <li><pr>255</pr> - Utilised Java 8 (and 7) features to tidy up code. Contributed by Graham Russell (graham at ham1.co.uk)</li>
+    <li><bug>59435</bug>JMeterTestCase no longer supports JUnit3</li>
+</ul>
+
+ <!-- =================== Bug fixes =================== -->
+
+<ch_section>Bug fixes</ch_section>
+
+<h3>HTTP Samplers and Test Script Recorder</h3>
+<ul>
+    <li><bug>60531</bug>HTTP Cookie Manager : changing Implementation does not update Cookie Policy</li>
+    <li><bug>60575</bug>HTTP GET Requests could have a content-type header without a body.</li>
+    <li><bug>60682</bug>HTTP Request : Get method may fail on redirect due to Content-Length header being set</li>
+    <li><bug>60643</bug>HTTP(S) Test Script Recorder doesn't correctly handle restart or start after stop. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>60652</bug>HTTP PUT Requests might leak file descriptors.</li>
+    <li><bug>60689</bug><code>httpclient4.validate_after_inactivity</code> has no impact leading to usage of potentially stale/closed connections</li>
+    <li><bug>60690</bug>Default values for "httpclient4.validate_after_inactivity" and "httpclient4.time_to_live" which are equal to each other makes validation useless</li>
+    <li><bug>60758</bug>HTTP(s) Test Script Recorder : Number request may generate duplicate numbers. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>56939</bug>Parameters are not passed with OPTIONS HTTP Request</li>
+    <li><bug>60778</bug>Http Java Impl does not show Authorization header in SampleResult even if it is sent</li>
+    <li><bug>60837</bug>GET with body, PUT are not retried even if <code>httpclient4.retrycount</code> is higher than 0</li>
+    <li><bug>60842</bug>Trim extracted URLs when loading embedded resources using the Lagarto based HTML Parser.</li>
+    <li><bug>60928</bug>Http Request : Connection Leak when keepalive is used with Embedded Resources</li>
+</ul>
+
+<h3>Other Samplers</h3>
+<ul>
+    <li><bug>603982</bug>Guard Exception handler of the <code>JDBCSampler</code> against null messages</li>
+    <li><bug>55652</bug>JavaSampler silently resets classname if class can not be found</li>
+</ul>
+
+<h3>Controllers</h3>
+<ul>
+</ul>
+
+<h3>Listeners</h3>
+<ul>
+    <li><bug>60648</bug>GraphiteBackendListener can lose some metrics at end of test if test is very short</li>
+    <li><bug>60650</bug>AbstractBackendListenerClient does not reset UserMetric between runs</li>
+    <li><bug>60759</bug>View Results Tree : Search feature does not search in URL. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>60859</bug>Save Responses to a file : 2 elements with different configuration will overlap</li>
+</ul>
+
+<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
+<ul>
+    <li><bug>60438</bug><pr>235</pr> - Clear old variables before extracting new ones in JSON Extractor.
+    Based on a patch by Qi Chen (qi.chensh at ele.me)</li>
+    <li><bug>60607</bug>DNS Cache Manager configuration is ignored</li>
+    <li><bug>60729</bug>The Random Variable Config Element should allow minimum==maximum</li>
+    <li><bug>60730</bug>The JSON PostProcessor should set the <code>_ALL</code> variable even if the JSON path matches only once.</li>
+    <li><bug>60747</bug>Response Assertion : Add Request Headers to <code>Field to Test</code></li>
+    <li><bug>60763</bug>XMLAssertion should not leak errors to console</li>
+    <li><bug>60797</bug>TestAction in pause mode can last beyond configured duration of test</li>
+</ul>
+
+<h3>Functions</h3>
+<ul>
+    <li><bug>60819</bug>Function __fileToString does not honor the documentation contract when file is not found</li>
+</ul>
+
+<h3>I18N</h3>
+<ul>
+</ul>
+
+<h3>Report / Dashboard</h3>
+<ul>
+    <li><bug>60726</bug>Report / Dashboard : Top 5 errors by samplers must not take into account the series filtering</li>
+    <li><bug>60919</bug>Report / Dashboard : Latency Vs Request and Response Time Vs Request are wrong if granularity is different from 1000 (1 second)</li>
+</ul>
+    
+<h3>General</h3>
+<ul>
+    <li><bug>60775</bug>NamePanel ctor calls overrideable method</li>
+    <li><bug>60428</bug>JMeter Graphite Backend Listener throws exception when test ends
+    and <code>useRegexpForSamplersList</code> is set to <code>true</code>.
+    Based on patch by Liu XP (liu_xp2003 at sina.com)</li>
+    <li><bug>60442</bug>Fix a typo in <code>build.xml</code> (gavin at 16degrees.com.au)</li>
+    <li><bug>60449</bug>JMeter Tree : Annoying behaviour when node name is empty</li>
+    <li><bug>60494</bug>Add sonar analysis task to build</li>
+    <li><bug>60501</bug>Search Feature : Performance issue when regexp is checked</li>
+    <li><bug>60444</bug>Intermittent failure of <code>TestHTTPMirrorThread#testSleep()</code>. Contributed by Thomas Schapitz (ts-nospam12 at online.de)</li>
+    <li><bug>60621</bug>The "<code>report-template</code>" folder is missing from <code>ApacheJMeter_config-3.1.jar</code> in maven central</li>
+    <li><bug>60744</bug>GUI elements are not cleaned up when reused during load of Test Plan which can lead them to be partially initialized with a previous state for a new Test Element</li>
+    <li><bug>60812</bug>JMeterThread does not honor contract of JMeterStopTestNowException</li>
+    <li><bug>60857</bug>SaveService omits XML header if _file_encoding is not defined in saveservice.properties</li>
+    <li><bug>60830</bug>Timestamps in CSV file could be corrupted due to sharing a SimpleDateFormatter across threads</li>
+</ul>
+
+ <!--  =================== Thanks =================== -->
+
+<ch_section>Thanks</ch_section>
+<p>We thank all contributors mentioned in bug and improvement sections above:
+</p>
+<ul>
+<li>Jerome Loisel (loisel.jerome at gmail.com)</li>
+<li>Liu XP (liu_xp2003 at sina.com)</li>
+<li>Qi Chen (qi.chensh at ele.me)</li>
+<li>(gavin at 16degrees.com.au)</li>
+<li>Thomas Schapitz (ts-nospam12 at online.de)</li>
+<li>Murdecai777 (https://github.com/Murdecai777)</li>
+<li>Logan Mauzaize (logan.mauzaize at gmail.com)</li>
+<li>Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>
+<li>\u5ffb\u9686 (298015902 at qq.com)</li>
+<li><a href="http://ubikloadpack.com">Ubik Load Pack</a></li>
+<li>Graham Russell (graham at ham1.co.uk)</li>
+<li>Sanduni Kanishka (https://github.com/SanduniKanishka)</li>
+<li>Andrew Burton (andrewburtonatwh at gmail.com)</li>
+<li>Woonsan Ko (woonsan at apache.org)</li>
+<li>Bartosz Siewniak (barteksiewniak at gmail.com)</li>
+<li>Kimono (kimono.outfit.am at gmail.com)</li>
+<li>Michael Osipov (michaelo at apache.org)</li>
+<li>Stephane Leplus (s.leplus at ubik-ingenierie.com)</li>
+</ul>
+<p>We also thank bug reporters who helped us improve JMeter. <br/>
+For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:</p>
+<ul>
+<li>Tuukka Mustonen (tuukka.mustonen at gmail.com) who gave us a lot of useful feedback which helped resolve <bugzilla>60689</bugzilla> and <bugzilla>60690</bugzilla></li>
+<li>Amar Darisa (amar.darisa at gmail.com) who helped us with his feedback on <bugzilla>60682</bugzilla></li>
+</ul>
+<p>
+Apologies if we have omitted anyone else.
+ </p>
+ <!--  =================== Known bugs or issues related to JAVA Bugs =================== -->
+
+<ch_section>Known problems and workarounds</ch_section>
+<ul>
+<li>View Results Tree may freeze rendering large response particularly if this response has no spaces, see <bugzilla>60816</bugzilla>.
+This is due to an identified Java Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8172336">UI stuck when calling JEditorPane.setText() or JTextArea.setText() with long text without space</a>.
+</li>
+</ul>
+<ul>
+<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
+but otherwise its behaviour is not consistent (or clearly specified).</li>
+
+<li>
+The numbers that appear to the left of the green box are the number of active threads / total number of threads,
+the total number of threads only applies to a locally run test, otherwise it will show <code>0</code> (see <bugzilla>55510</bugzilla>).
+</li>
+
+<li>
+Note that under some windows systems you may have this WARNING:
+<source>
+java.util.prefs.WindowsPreferences
+WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
+x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
+</source>
+The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
+</li>
+
+<li>
+You may encounter the following error:
+<source>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</source>
+ if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
+ algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
+This error is related to increased security in Java 8+.
+<br></br>
+To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
+the Java <code>jdk.certpath.disabledAlgorithms</code> property. Remove the MD2 value or the constraint on size, depending on your case.
+<br></br>
+This property is in this file:
+<source>JAVA_HOME/jre/lib/security/java.security</source>
+See  <bugzilla>56357</bugzilla> for details.
+</li>
+
+<li>
+Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
+This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373" >JDK-8065373</a>
+The fix is to use JDK8_u45 or later.
+</li>
+
+<li>
+View Results Tree may fail to display some HTML code under HTML renderer, see <bugzilla>54586</bugzilla>.
+This is due to a known Java bug which fails to parse "<code>px</code>" units in row/col attributes.
+See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109" >JDK-8031109</a>
+The fix is to use JDK9 b65 or later (but be aware that Java 9 is not certified yet for JMeter).
+</li>
+
+<li>
+JTable selection with keyboard (<keycombo><keysym>SHIFT</keysym><keysym>up/down</keysym></keycombo>) is totally unusable with JAVA 7 on Mac OSX.
+This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126" >JDK-8025126</a>
+The fix is to use JDK 8 b132 or later.
+</li>
+</ul>
+
 <!--  =================== 3.1 =================== -->
 
 <h1>Version 3.1</h1>