Author: agomes
Date: Sun Dec  3 21:56:48 2017
New Revision: 1817055

URL: http://svn.apache.org/viewvc?rev=1817055&view=rev
Log:
Bug 61852 - Add a Boundary Extractor Tester in View Results Tree

Added:
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsBoundaryExtractor.java
   (with props)
Modified:
    
jmeter/trunk/src/components/org/apache/jmeter/extractor/BoundaryExtractor.java
    jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
    jmeter/trunk/xdocs/changes.xml
    jmeter/trunk/xdocs/usermanual/component_reference.xml

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/extractor/BoundaryExtractor.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/extractor/BoundaryExtractor.java?rev=1817055&r1=1817054&r2=1817055&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/extractor/BoundaryExtractor.java 
(original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/extractor/BoundaryExtractor.java 
Sun Dec  3 21:56:48 2017
@@ -239,7 +239,7 @@ public class BoundaryExtractor extends A
      * @param found
      * @return int found updated
      */
-    private int extract(String leftBoundary, String rightBoundary, int 
matchNumber, String inputString,
+    public int extract(String leftBoundary, String rightBoundary, int 
matchNumber, String inputString,
             List<String> result, int found) {
         int startIndex = -1;
         int endIndex;

Added: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsBoundaryExtractor.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsBoundaryExtractor.java?rev=1817055&view=auto
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsBoundaryExtractor.java
 (added)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsBoundaryExtractor.java
 Sun Dec  3 21:56:48 2017
@@ -0,0 +1,240 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jmeter.visualizers;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextArea;
+import javax.swing.border.Border;
+import javax.swing.border.EmptyBorder;
+
+import org.apache.jmeter.extractor.BoundaryExtractor;
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.gui.GuiUtils;
+import org.apache.jorphan.gui.JLabeledTextField;
+
+
+/**
+ * Implement ResultsRender for Boundary Extractor tester
+ */
+public class RenderAsBoundaryExtractor implements ResultRenderer, 
ActionListener {
+
+    private static final String BOUNDARY_EXTRACTOR_TESTER_COMMAND = 
"boundary_extractor_tester"; // $NON-NLS-1$
+
+    private JPanel boundaryExtractorPane;
+
+    private JTextArea boundaryExtractorDataField;
+    
+    private JLabeledTextField boundaryExtractorFieldLeft;
+
+    private JLabeledTextField boundaryExtractorFieldRight;
+
+    private JTextArea boundaryExtractorResultField;
+
+    private JTabbedPane rightSide;
+
+    private SampleResult sampleResult = null;
+    
+    /**
+     * Display the response as text or as rendered HTML. Change the text on the
+     * button appropriate to the current display.
+     *
+     * @param e the ActionEvent being processed
+     */
+    @Override
+    public void actionPerformed(ActionEvent e) {
+        String command = e.getActionCommand();
+        if ((sampleResult != null) && 
(BOUNDARY_EXTRACTOR_TESTER_COMMAND.equals(command))) {
+            String response = 
ViewResultsFullVisualizer.getResponseAsString(sampleResult);
+            executeAndShowBoundaryExtractorTester(response);
+        }
+    }
+    
+    /**
+     * Launch boundaryExtractor engine to parse a input text
+     * @param textToParse
+     */
+    private void executeAndShowBoundaryExtractorTester(String textToParse) {
+        if (textToParse != null && textToParse.length() > 0
+                && this.boundaryExtractorFieldLeft.getText().length() > 0
+                && this.boundaryExtractorFieldRight.getText().length() > 0) {
+            this.boundaryExtractorResultField.setText(process(textToParse));
+            this.boundaryExtractorResultField.setCaretPosition(0); // go to 
first line
+        }
+    }
+    
+    
+    private String process(String textToParse) {
+
+        List<String> result = new ArrayList<>();
+        BoundaryExtractor extractor = new BoundaryExtractor();
+        
+        final int nbFound = 
extractor.extract(boundaryExtractorFieldLeft.getText(),boundaryExtractorFieldRight.getText(),
 -1, textToParse, result, 0);
+
+        // Construct a multi-line string with all matches
+        StringBuilder sb = new StringBuilder();
+        sb.append("Match count: ").append(nbFound).append("\n");
+        for (int j = 0; j < nbFound; j++) {
+            String mr = result.get(j);
+            
sb.append("Match[").append(j+1).append("]=").append(mr).append("\n");
+        }
+        return sb.toString();
+
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void clearData() {
+        this.boundaryExtractorDataField.setText(""); // $NON-NLS-1$
+        this.boundaryExtractorFieldLeft.setText(""); // $NON-NLS-1$
+        this.boundaryExtractorFieldRight.setText(""); // $NON-NLS-1$
+        this.boundaryExtractorResultField.setText(""); // $NON-NLS-1$
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void init() {
+        // Create the panels for the boundaryExtractor tab
+        boundaryExtractorPane = createBoundaryExtractorPanel();
+    }
+
+    /**
+     * @return boundaryExtractor Tester panel
+     */
+    private JPanel createBoundaryExtractorPanel() {
+        boundaryExtractorDataField = new JTextArea();
+        boundaryExtractorDataField.setEditable(false);
+        boundaryExtractorDataField.setLineWrap(true);
+        boundaryExtractorDataField.setWrapStyleWord(true);
+
+        JScrollPane boundaryExtractorDataPane = 
GuiUtils.makeScrollPane(boundaryExtractorDataField);
+        boundaryExtractorDataPane.setPreferredSize(new Dimension(0, 200));
+
+        JPanel pane = new JPanel(new BorderLayout(0, 5));
+
+        JSplitPane mainSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
+                boundaryExtractorDataPane, 
createBoundaryExtractorTasksPanel());
+        mainSplit.setDividerLocation(0.6d);
+        mainSplit.setOneTouchExpandable(true);
+        pane.add(mainSplit, BorderLayout.CENTER);
+        return pane;
+    }
+    
+    /**
+     * Create the boundaryExtractor task pane
+     *
+     * @return boundaryExtractor task pane
+     */
+    private JPanel createBoundaryExtractorTasksPanel() {
+        JPanel boundaryExtractorActionPanel = new JPanel();
+        boundaryExtractorActionPanel.setLayout(new 
BoxLayout(boundaryExtractorActionPanel, BoxLayout.X_AXIS));
+        Border margin = new EmptyBorder(5, 5, 0, 5);
+        boundaryExtractorActionPanel.setBorder(margin);
+        boundaryExtractorFieldLeft = new 
JLabeledTextField(JMeterUtils.getResString("boundaryextractor_leftboundary_field"));
 // $NON-NLS-1$
+        boundaryExtractorActionPanel.add(boundaryExtractorFieldLeft, 
BorderLayout.WEST);
+        boundaryExtractorFieldRight = new 
JLabeledTextField(JMeterUtils.getResString("boundaryextractor_rightboundary_field"));
 // $NON-NLS-1$
+        boundaryExtractorActionPanel.add(boundaryExtractorFieldRight, 
BorderLayout.WEST);
+        
+        JButton boundaryExtractorTester = new 
JButton(JMeterUtils.getResString("boundaryextractor_tester_button_test")); // 
$NON-NLS-1$
+        
boundaryExtractorTester.setActionCommand(BOUNDARY_EXTRACTOR_TESTER_COMMAND);
+        boundaryExtractorTester.addActionListener(this);
+        boundaryExtractorActionPanel.add(boundaryExtractorTester, 
BorderLayout.EAST);
+
+        boundaryExtractorResultField = new JTextArea();
+        boundaryExtractorResultField.setEditable(false);
+        boundaryExtractorResultField.setLineWrap(true);
+        boundaryExtractorResultField.setWrapStyleWord(true);
+
+        JPanel boundaryExtractorTasksPanel = new JPanel(new BorderLayout(0, 
5));
+        boundaryExtractorTasksPanel.add(boundaryExtractorActionPanel, 
BorderLayout.NORTH);
+        
boundaryExtractorTasksPanel.add(GuiUtils.makeScrollPane(boundaryExtractorResultField),
 BorderLayout.CENTER);
+
+        return boundaryExtractorTasksPanel;
+    }
+    
+    /** {@inheritDoc} */
+    @Override
+    public void setupTabPane() {
+         // Add boundaryExtractor tester pane
+        if 
(rightSide.indexOfTab(JMeterUtils.getResString("boundaryextractor_tester_title"))
 < 0) { // $NON-NLS-1$
+            
rightSide.addTab(JMeterUtils.getResString("boundaryextractor_tester_title"), 
boundaryExtractorPane); // $NON-NLS-1$
+        }
+        clearData();
+    }
+
+    @Override
+    public void setLastSelectedTab(int index) {
+        // nothing to do    
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public synchronized void setRightSide(JTabbedPane side) {
+        rightSide = side;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public synchronized void setSamplerResult(Object userObject) {
+        if (userObject instanceof SampleResult) {
+            sampleResult = (SampleResult) userObject;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void renderResult(SampleResult sampleResult) {
+        clearData();
+        String response = 
ViewResultsFullVisualizer.getResponseAsString(sampleResult);
+        boundaryExtractorDataField.setText(response);
+        boundaryExtractorDataField.setCaretPosition(0);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return JMeterUtils.getResString("boundaryextractor_tester_title"); // 
$NON-NLS-1$
+    }
+    
+    /** {@inheritDoc} */
+    @Override
+    public void renderImage(SampleResult sampleResult) {
+        clearData();
+        
boundaryExtractorDataField.setText(JMeterUtils.getResString("boundaryextractor_render_no_text"));
 // $NON-NLS-1$
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setBackgroundColor(Color backGround) {
+    }
+
+}

Propchange: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsBoundaryExtractor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1817055&r1=1817054&r2=1817055&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Sun 
Dec  3 21:56:48 2017
@@ -148,8 +148,11 @@ backend_listener_queue_size=Async Queue
 bind=Thread Bind
 bouncy_castle_unavailable_message=The jars for bouncy castle are unavailable, 
please add them to your classpath.
 boundaryextractor_empty_default_value=Use empty default value
-boundaryextractor_leftboundary_field=Left Boundary: 
-boundaryextractor_rightboundary_field=Right Boundary: 
+boundaryextractor_leftboundary_field=Left Boundary:
+boundaryextractor_render_no_text=Data response result isn't text. 
+boundaryextractor_rightboundary_field=Right Boundary:
+boundaryextractor_tester_button_test=Test
+boundaryextractor_tester_title=Boundary Extractor Tester 
 boundaryextractor_title=Boundary Extractor
 browse=Browse...
 bsf_sampler_title=BSF Sampler

Modified: 
jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1817055&r1=1817054&r2=1817055&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties 
Sun Dec  3 21:56:48 2017
@@ -144,7 +144,10 @@ bind=Connexion de l'unit\u00E9
 bouncy_castle_unavailable_message=Les jars de bouncycastle sont indisponibles, 
ajoutez les au classpath.
 boundaryextractor_empty_default_value=Utiliser la cha\u00EEne vide comme 
valeur par d\u00E9faut
 boundaryextractor_leftboundary_field=Borne gauche
+boundaryextractor_render_no_text=Les donn\u00E9es de r\u00E9ponse ne sont pas 
du texte.
 boundaryextractor_rightboundary_field=Borne droite
+boundaryextractor_tester_button_test=Tester
+boundaryextractor_tester_title=Testeur de extracteur par bornes 
 boundaryextractor_title=Extracteur par bornes
 browse=Parcourir...
 bsf_sampler_title=Echantillon BSF

Modified: jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1817055&r1=1817054&r2=1817055&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Sun Dec  3 21:56:48 2017
@@ -95,42 +95,43 @@ Summary
 <h3>HTTP Samplers and Test Script Recorder</h3>
 <ul>
     <li><pr>316</pr>Warn about empty truststore loading. Contributed by 
Vincent Herilier (https://github.com/vherilier)</li>
-    <li><bug>61639</bug>HTTP(S) Test Script Recorder : In request filtering 
tab, uncheck by default "Notify Child Listeners of filtered samplers"</li>
-    <li><bug>61672</bug>HTTP(S) Test Script Recorder : Have the ability to 
choose the sampler name while keeping the ability to just add a prefix</li>
-    <li><bug>53957</bug>HTTP Request : In Parameters tab, allow pasting of 
content coming from Firefox and Chrome (unparsed)</li>
+    <li><bug>61639</bug>HTTP(S) Test Script Recorder: In request filtering 
tab, uncheck by default "Notify Child Listeners of filtered samplers"</li>
+    <li><bug>61672</bug>HTTP(S) Test Script Recorder: Have the ability to 
choose the sampler name while keeping the ability to just add a prefix</li>
+    <li><bug>53957</bug>HTTP Request: In Parameters tab, allow pasting of 
content coming from Firefox and Chrome (unparsed)</li>
     <li><bug>61587</bug>Drop properties 
<code>sampleresult.getbytes.headers_size</code> and 
<code>sampleresult.getbytes.body_real_size</code></li>
-    <li><bug>61843</bug>HTTP(S) Test Script Recorder : Add SAN to JMeter 
generated CA Certificate. Contributed by Matthew Buckett</li>
+    <li><bug>61843</bug>HTTP(S) Test Script Recorder: Add SAN to JMeter 
generated CA Certificate. Contributed by Matthew Buckett</li>
 </ul>
 
 <h3>Other samplers</h3>
 <ul>
-    <li><bug>61739</bug>Java Request / JavaSamplerClient : Improve 
<code>org.apache.jmeter.protocol.java.sampler.JavaSamplerContext</code></li>
+    <li><bug>61739</bug>Java Request / JavaSamplerClient: Improve 
<code>org.apache.jmeter.protocol.java.sampler.JavaSamplerContext</code></li>
     <li><bug>61762</bug>Start Next Thread Loop should be used everywhere</li>
     <li><bug>61544</bug>JMS Point-to-Point Sampler: Enhance communication 
styles with read, browse, clear. Based on a contribution by Benny van 
Wijngaarden (benny at smaragd-it.nl)</li>
-    <li><bug>61829</bug>JMS Point-to-Point : If Receive Queue is empty and a 
timeout is set, it is not taken into account. Contributed by Ubik Load Pack 
(support at ubikloadpack.com)</li>
+    <li><bug>61829</bug>JMS Point-to-Point: If Receive Queue is empty and a 
timeout is set, it is not taken into account. Contributed by Ubik Load Pack 
(support at ubikloadpack.com)</li>
 </ul>
 
 <h3>Controllers</h3>
 <ul>
-    <li><bug>61675</bug>If Controller : Use expression by default and add a 
warning when the other mode is used. Contributed by Ubik Load Pack (support at 
ubikloadpack.com)</li>
-    <li><bug>61770</bug>Module Controller : Inform user in UI that he needs to 
have at least one Controller in his plan. Contributed by Ubik Load Pack 
(support at ubikloadpack.com)</li>
+    <li><bug>61675</bug>If Controller: Use expression by default and add a 
warning when the other mode is used. Contributed by Ubik Load Pack (support at 
ubikloadpack.com)</li>
+    <li><bug>61770</bug>Module Controller: Inform user in UI that he needs to 
have at least one Controller in his plan. Contributed by Ubik Load Pack 
(support at ubikloadpack.com)</li>
 </ul>
 
 <h3>Listeners</h3>
 <ul>
-    <li><bug>57760</bug>View Results Tree : Cookie Header is wrongly shown as 
empty (no cookies) when viewing a recorder Sample Result. Contributed by Ubik 
Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>57760</bug>View Results Tree: Cookie Header is wrongly shown as 
empty (no cookies) when viewing a recorder Sample Result. Contributed by Ubik 
Load Pack (support at ubikloadpack.com)</li>
     <li><bug>61769</bug>View Results Tree: Use syntax highlighter in XPath 
Tester, JSON Path Tester and CSS/JQuery Tester. Contributed by Ubik Load Pack 
(support at ubikloadpack.com)</li>
     <li><bug>61776</bug>View Results Tree: Expansion of <code>Add 
expand/collapse all</code> menu in render XML view. Contributed by Maxime 
Chassagneux and Graham Russell</li>
-    <li><bug>61794</bug>Influxdb backend : Add as many custom tags as wanted 
by just create new lines and prefix theirs name by "<code>TAG_</code>" on the 
GUI backend listener</li>
+    <li><bug>61852</bug>View Results Tree: Add a Boundary Extractor Tester</li>
+    <li><bug>61794</bug>Influxdb backend: Add as many custom tags as wanted by 
just create new lines and prefix theirs name by "<code>TAG_</code>" on the GUI 
backend listener</li>
 </ul>
 
 <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
 <ul>
     <li><bug>60213</bug>Boundary based extractor</li>
     <li><bug>61644</bug>HTTP Cache Manager: "Use Cache-Control/Expires header 
when processing GET requests" should be checked by default</li>
-    <li><bug>61645</bug>Response Assertion : Add ability to assert on Request 
Data</li>
+    <li><bug>61645</bug>Response Assertion: Add ability to assert on Request 
Data</li>
     <li><bug>61534</bug>Convert AssertionError to a failed assertion in the 
JSR223Assertion allowing users to use assert in their code</li>
-    <li><bug>61756</bug>Extractors : Improve label name "Reference name" to 
make it clear what it makes</li>
+    <li><bug>61756</bug>Extractors: Improve label name "Reference name" to 
make it clear what it makes</li>
     <li><bug>61758</bug><code>Apply to:</code> field in Extractors, Assertions 
: When entering a value in <code>JMeter Variable Name</code>, the radio box 
<code>JMeter Variable Name</code> should be selected by default. Contributed by 
Ubik Load Pack (support at ubikloadpack.com)</li>
     <li><bug>61845</bug>New Component JSON Assertion based on AtlanBH JSON 
Path Assertion donated to JMeter-Plugins and migrated into JMeter core by Artem 
Fedorov (artem at blazemeter.com)</li>
     <li><bug>61846</bug>Scoped Assertion should follow same order of 
evaluation as Post Processors</li>
@@ -139,7 +140,7 @@ Summary
 <h3>Functions</h3>
 <ul>
     <li><bug>61561</bug>Function helper dialog should display exception in 
result</li>
-    <li><bug>61738</bug>Function Helper Dialog : Add Copy in Generate and 
clarify labels. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>61738</bug>Function Helper Dialog: Add Copy in Generate and 
clarify labels. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
     <li><bug>61593</bug>Remove Detail, Add, Add from Clipboard, Delete buttons 
in Function Helper GUI</li>
     <li><bug>61724</bug>Add <code>__digest</code> function to provide 
computing of Hashes (SHA-XXX, MDX). Based on a contribution by orimarko at 
gmail.com</li>
     <li><bug>61735</bug>Add <code>__dateTimeConvert</code> function to provide 
date formats conversions. Based on a contribution by orimarko at gmail.com</li>
@@ -150,7 +151,7 @@ Summary
 <h3>I18N</h3>
 <ul>
     <li><bug>61606</bug>Translate button <code>Browse&hellip;</code> in some 
elements (which use FileEditor class)</li>
-    <li><bug>61747</bug>HTTP(S) Test Script Recorder : add the missing doc to 
"Create transaction after request (ms)"</li>
+    <li><bug>61747</bug>HTTP(S) Test Script Recorder: add the missing doc to 
"Create transaction after request (ms)"</li>
 </ul>
 
 <h3>Report / Dashboard</h3>
@@ -160,22 +161,22 @@ Summary
 <h3>General</h3>
 <ul>
     <li><bug>61591</bug>Drop Workbench from test tree. Implemented by Artem 
Fedorov (artem at blazemeter.com) and contributed by BlazeMeter Ltd.</li>
-    <li><bug>61549</bug>Thread Group : Remove start and end date</li>
+    <li><bug>61549</bug>Thread Group: Remove start and end date</li>
     <li><bug>61529</bug>Migration to Java 9. Partly contributed by Ubik Load 
Pack (support at ubikloadpack.com)</li>
-    <li><bug>61709</bug>SampleResult : Add a method <code>setIgnore()</code> 
to make JMeter ignore the SampleResult and not send it to listeners</li>
+    <li><bug>61709</bug>SampleResult: Add a method <code>setIgnore()</code> to 
make JMeter ignore the SampleResult and not send it to listeners</li>
     <li><bug>61607</bug>Add browse button in all BeanShell elements to select 
BeanShell script</li>
     <li><bug>61627</bug>Don't clear LogView anymore when clicking on 
Warning/Errors Indicator</li>
     <li><bug>61629</bug>Add Think Times to Children menu should not consider 
disabled elements</li>
-    <li><bug>61655</bug>SampleSender : Drop HoldSampleSender 
implementation</li>
+    <li><bug>61655</bug>SampleSender: Drop HoldSampleSender implementation</li>
     <li><bug>61656</bug><code>tearDown Thread Group</code> should run by 
default at stop or shutdown of test</li>
     <li><bug>61659</bug><code>JMeterVariables#get()</code> should apply 
<code>toString()</code> on non string objects</li>
     <li><bug>61555</bug>Metaspace should be restricted as default</li>
     <li><bug>61693</bug>JMeter aware of Docker 
(<code>-XX:+UnlockExperimentalVMOptions</code> 
<code>-XX:+UseCGroupMemoryLimitForHeap</code>)</li>
     <li><bug>61694</bug>Add <code>-server</code> option in 
<code>jmeter.bat</code></li>
     <li><bug>61697</bug>Introduce Darcula Look And Feel to make JMeter UI more 
attractive</li>
-    <li><bug>61704</bug>Toolbar : Improve a bit the right part</li>
+    <li><bug>61704</bug>Toolbar: Improve a bit the right part</li>
     <li><bug>61731</bug>Enhance Test plan Backup with option to save before 
run. Based on a contribution by orimarko at gmail.com</li>
-    <li><bug>61640</bug>JSR223 Test Elements : Enable by default caching. 
Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
+    <li><bug>61640</bug>JSR223 Test Elements: Enable by default caching. 
Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
     <li><bug>61785</bug>Add 
<menuchoice><guimenuitem>Help</guimenuitem><guimenuitem>Useful 
links</guimenuitem></menuchoice> to create issues and download nightly 
build</li>
     <li><bug>61808</bug>Fix main frame position. Implemented by Artem Fedorov 
(artem at blazemeter.com) and contributed by BlazeMeter Ltd.</li>
     <li><bug>61802</bug>Loop / ForEach Controller should expose a variable for 
current iteration. Contributed by Ubik Load Pack (support at 
ubikloadpack.com)</li>
@@ -225,12 +226,12 @@ Summary
 
 <h3>Listeners</h3>
 <ul>
-    <li><bug>61742</bug>BackendListener : fix default value for 
<code>backend_graphite.send_interval</code></li>
+    <li><bug>61742</bug>BackendListener: fix default value for 
<code>backend_graphite.send_interval</code></li>
 </ul>
 
 <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
 <ul>
-    <li><bug>61716</bug>Header Manager : When pasting Headers from Firefox or 
Chrome spaces are introduced as first character of value</li>
+    <li><bug>61716</bug>Header Manager: When pasting Headers from Firefox or 
Chrome spaces are introduced as first character of value</li>
 </ul>
 
 <h3>Functions</h3>
@@ -238,7 +239,7 @@ Summary
     <li><bug>61588</bug>Better log message for <funclink 
name="__RandomDate()"/> function</li>
     <li><bug>61619</bug>In Function Helper Dialog, the 1<sup>st</sup> function 
doesn't display default parameters</li>
     <li><bug>61628</bug>If split string has empty separator default separator 
is not used</li>
-    <li><bug>61752</bug><code>__RandomDate</code> : Function does not allow 
missing last parameter used for variable name</li>
+    <li><bug>61752</bug><code>__RandomDate</code>: Function does not allow 
missing last parameter used for variable name</li>
 </ul>
 
 <h3>I18N</h3>
@@ -254,7 +255,7 @@ Summary
 <ul>
     <li><bug>61661</bug>Avoid startup/shutdown problems due to 3<sup>rd</sup> 
party Thread Listener plugins throwing RuntimeException</li>
     <li><bug>61625</bug>File Editor used in BeanInfo behaves strangely under 
all LAFs with impact on CSVDataSet, JSR223, BSF, Beanshell Element</li>
-    <li><bug>61844</bug>Maven pom.xml : Libraries used in testing should have 
scope test</li>
+    <li><bug>61844</bug>Maven pom.xml: Libraries used in testing should have 
scope test</li>
 </ul>
 
  <!--  =================== Thanks =================== -->

Modified: jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=1817055&r1=1817054&r2=1817055&view=diff
==============================================================================
--- jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jmeter/trunk/xdocs/usermanual/component_reference.xml Sun Dec  3 21:56:48 
2017
@@ -2920,6 +2920,11 @@ You can right-click on any node and expa
 The "<code>Test</code>" button allows the user to apply the XPath query to the 
upper panel and the results
 will be displayed in the lower panel.<br/>
 </td></tr>
+<tr><td><code>Boundary Extractor Tester </code></td>
+<td>The <i>Boundary Extractor Tester</i> only works for text responses. It 
shows the plain text in the upper panel.
+The "<code>Test</code>" button allows the user to apply the Boundary Extractor 
query to the upper panel and the results
+will be displayed in the lower panel.<br/>
+</td></tr>
 </table>
 <p><code>Scroll automatically?</code> option permit to have last node display 
in tree selection</p>
 <note>Starting with version 3.2 the number of entries in the View is 
restricted to the value of the


Reply via email to