This is an automated email from the ASF dual-hosted git repository. fschumacher pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/jmeter.git
commit b2d497f36cb8eb057939138502dd2b7fe3c3e6ff Author: Graham Russell <[email protected]> AuthorDate: Thu Oct 3 12:04:46 2019 +0100 Anonymous type can be replaced with lambda + formatting along the way --- .../java/org/apache/jmeter/visualizers/Graph.java | 13 ++- .../jmeter/visualizers/MailerVisualizer.java | 13 ++- .../jmeter/visualizers/PropertyControlGui.java | 15 ++-- .../visualizers/RespTimeGraphVisualizer.java | 84 ++++++++--------- .../PreciseThroughputTimerTest.java | 14 +-- .../jmeter/gui/tree/JMeterTreeTransferHandler.java | 19 +--- .../org/apache/jmeter/report/core/Converters.java | 100 +++++++-------------- .../java/org/apache/jmeter/swing/HtmlPane.java | 25 +++--- .../jmeter/visualizers/gui/AbstractVisualizer.java | 29 +++--- .../java/org/apache/jorphan/gui/MenuScroller.java | 12 +-- .../jmeter/protocol/http/sampler/HTTPHC4Impl.java | 95 ++++++-------------- .../jmeter/protocol/java/sampler/JUnitSampler.java | 36 +++----- 12 files changed, 156 insertions(+), 299 deletions(-) diff --git a/src/components/src/main/java/org/apache/jmeter/visualizers/Graph.java b/src/components/src/main/java/org/apache/jmeter/visualizers/Graph.java index 7d596e2..0d8b1ad 100644 --- a/src/components/src/main/java/org/apache/jmeter/visualizers/Graph.java +++ b/src/components/src/main/java/org/apache/jmeter/visualizers/Graph.java @@ -177,14 +177,11 @@ public class Graph extends JComponent implements Scrollable, Clearable { } final long xPos = model.getCount(); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - Graphics g = getGraphics(); - - if (g != null) { - drawSample(xPos, oneSample, g); - } + SwingUtilities.invokeLater(() -> { + Graphics g = getGraphics(); + + if (g != null) { + drawSample(xPos, oneSample, g); } }); } diff --git a/src/components/src/main/java/org/apache/jmeter/visualizers/MailerVisualizer.java b/src/components/src/main/java/org/apache/jmeter/visualizers/MailerVisualizer.java index 3434b65..6b196bc 100644 --- a/src/components/src/main/java/org/apache/jmeter/visualizers/MailerVisualizer.java +++ b/src/components/src/main/java/org/apache/jmeter/visualizers/MailerVisualizer.java @@ -122,14 +122,11 @@ public class MailerVisualizer extends AbstractVisualizer implements ActionListen @Override public void add(final SampleResult res) { if (getModel() != null) { - JMeterUtils.runSafe(false, new Runnable() { - @Override - public void run() { - MailerModel model = ((MailerResultCollector) getModel()).getMailerModel(); - // method called by add is synchronized - model.add(res);//this is a different model from the one used by the result collector - updateVisualizer(model); - } + JMeterUtils.runSafe(false, () -> { + MailerModel model = ((MailerResultCollector) getModel()).getMailerModel(); + // method called by add is synchronized + model.add(res);//this is a different model from the one used by the result collector + updateVisualizer(model); }); } } diff --git a/src/components/src/main/java/org/apache/jmeter/visualizers/PropertyControlGui.java b/src/components/src/main/java/org/apache/jmeter/visualizers/PropertyControlGui.java index d7d88d9..58d6a3d 100644 --- a/src/components/src/main/java/org/apache/jmeter/visualizers/PropertyControlGui.java +++ b/src/components/src/main/java/org/apache/jmeter/visualizers/PropertyControlGui.java @@ -26,8 +26,6 @@ import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Properties; @@ -133,18 +131,15 @@ public class PropertyControlGui extends AbstractConfigGui implements } Set<Map.Entry<Object, Object>> s = p.entrySet(); List<Map.Entry<Object, Object>> al = new ArrayList<>(s); - Collections.sort(al, new Comparator<Map.Entry<Object, Object>>(){ - @Override - public int compare(Map.Entry<Object, Object> o1, Map.Entry<Object, Object> o2) { - String m1 = (String) o1.getKey(); - String m2 = (String) o2.getKey(); - return m1.compareTo(m2); - } + al.sort((o1, o2) -> { + String m1 = (String) o1.getKey(); + String m2 = (String) o2.getKey(); + return m1.compareTo(m2); }); + for (Map.Entry<Object, Object> row : al) { tableModel.addRow(row); } - } @Override diff --git a/src/components/src/main/java/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java b/src/components/src/main/java/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java index 4a55430..8e88665 100644 --- a/src/components/src/main/java/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java +++ b/src/components/src/main/java/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java @@ -50,7 +50,6 @@ import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; -import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.apache.commons.lang3.ArrayUtils; @@ -302,44 +301,41 @@ public class RespTimeGraphVisualizer extends AbstractVisualizer implements Actio if ((matcher == null) || (matcher.find())) { final long startTimeMS = sampleResult.getStartTime(); final long startTimeInterval = startTimeMS / intervalValue; - JMeterUtils.runSafe(false, new Runnable() { - @Override - public void run() { - synchronized (lock) { - // Use for x-axis scale - if (startTimeInterval < minStartTime) { - minStartTime = startTimeInterval; - } else if (startTimeInterval > maxStartTime) { - maxStartTime = startTimeInterval; - } - // Generate x-axis label and associated color - if (!seriesNames.containsKey(sampleLabel)) { - seriesNames.put(sampleLabel, - new RespTimeGraphLineBean(sampleLabel, listColors.get(colorIdx++))); - // reset colors index - if (colorIdx >= listColors.size()) { - colorIdx = 0; - } + JMeterUtils.runSafe(false, () -> { + synchronized (lock) { + // Use for x-axis scale + if (startTimeInterval < minStartTime) { + minStartTime = startTimeInterval; + } else if (startTimeInterval > maxStartTime) { + maxStartTime = startTimeInterval; + } + // Generate x-axis label and associated color + if (!seriesNames.containsKey(sampleLabel)) { + seriesNames.put(sampleLabel, + new RespTimeGraphLineBean(sampleLabel, listColors.get(colorIdx++))); + // reset colors index + if (colorIdx >= listColors.size()) { + colorIdx = 0; } - // List of value by sampler - Map<Long, StatCalculatorLong> subList = pList.get(sampleLabel); - final Long startTimeIntervalLong = Long.valueOf(startTimeInterval); - if (subList != null) { - long respTime = sampleResult.getTime(); - StatCalculatorLong value = subList.get(startTimeIntervalLong); - if (value==null) { - value = new StatCalculatorLong(); - subList.put(startTimeIntervalLong, value); - } - value.addValue(respTime, 1); - } else { - // We want to retain insertion order, so LinkedHashMap is necessary - Map<Long, StatCalculatorLong> newSubList = new LinkedHashMap<>(5); - StatCalculatorLong helper = new StatCalculatorLong(); - helper.addValue(Long.valueOf(sampleResult.getTime()),1); - newSubList.put(startTimeIntervalLong, helper); - pList.put(sampleLabel, newSubList); + } + // List of value by sampler + Map<Long, StatCalculatorLong> subList = pList.get(sampleLabel); + final Long startTimeIntervalLong = Long.valueOf(startTimeInterval); + if (subList != null) { + long respTime = sampleResult.getTime(); + StatCalculatorLong value = subList.get(startTimeIntervalLong); + if (value==null) { + value = new StatCalculatorLong(); + subList.put(startTimeIntervalLong, value); } + value.addValue(respTime, 1); + } else { + // We want to retain insertion order, so LinkedHashMap is necessary + Map<Long, StatCalculatorLong> newSubList = new LinkedHashMap<>(5); + StatCalculatorLong helper = new StatCalculatorLong(); + helper.addValue(Long.valueOf(sampleResult.getTime()),1); + newSubList.put(startTimeIntervalLong, helper); + pList.put(sampleLabel, newSubList); } } }); @@ -497,21 +493,17 @@ public class RespTimeGraphVisualizer extends AbstractVisualizer implements Actio tabbedGraph.addTab(JMeterUtils.getResString("aggregate_graph_tab_graph"), graphPanel); //$NON-NLS-1$ // If clic on the Graph tab, make the graph (without apply interval or filter) - ChangeListener changeListener = new ChangeListener() { - @Override - public void stateChanged(ChangeEvent changeEvent) { - JTabbedPane srcTab = (JTabbedPane) changeEvent.getSource(); - int index = srcTab.getSelectedIndex(); - if (srcTab.getTitleAt(index).equals(JMeterUtils.getResString("aggregate_graph_tab_graph"))) { //$NON-NLS-1$ - actionMakeGraph(); - } + ChangeListener changeListener = changeEvent -> { + JTabbedPane srcTab = (JTabbedPane) changeEvent.getSource(); + int index = srcTab.getSelectedIndex(); + if (srcTab.getTitleAt(index).equals(JMeterUtils.getResString("aggregate_graph_tab_graph"))) { //$NON-NLS-1$ + actionMakeGraph(); } }; tabbedGraph.addChangeListener(changeListener); this.add(mainPanel, BorderLayout.NORTH); this.add(tabbedGraph, BorderLayout.CENTER); - } @Override diff --git a/src/components/src/test/java/org/apache/jmeter/timers/poissonarrivals/PreciseThroughputTimerTest.java b/src/components/src/test/java/org/apache/jmeter/timers/poissonarrivals/PreciseThroughputTimerTest.java index 3740134..73bd696 100644 --- a/src/components/src/test/java/org/apache/jmeter/timers/poissonarrivals/PreciseThroughputTimerTest.java +++ b/src/components/src/test/java/org/apache/jmeter/timers/poissonarrivals/PreciseThroughputTimerTest.java @@ -68,20 +68,10 @@ public class PreciseThroughputTimerTest { protected ConstantPoissonProcessGenerator getConstantPoissonProcessGenerator( final double throughput, final int duration, long seed) { return new ConstantPoissonProcessGenerator( - new ThroughputProvider() { - @Override - public double getThroughput() { - return throughput; // samples per second - } - }, + () -> throughput, // samples per second 1, 0, - new DurationProvider() { - @Override - public long getDuration() { - return duration; // "expected" test duration: 3 seconds - } - }, + () -> duration, // "expected" test duration: 3 seconds 10000, 0.1, seed, // Seed diff --git a/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java b/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java index ef902d6..e103647 100644 --- a/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java +++ b/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java @@ -61,13 +61,11 @@ public class JMeterTreeTransferHandler extends TransferHandler { } } - @Override public int getSourceActions(JComponent c) { return MOVE; } - @Override protected Transferable createTransferable(JComponent c) { this.nodesForRemoval = null; @@ -107,23 +105,17 @@ public class JMeterTreeTransferHandler extends TransferHandler { return null; } - private static void sortTreePathByRow(TreePath[] paths, final JTree tree) { - Comparator<TreePath> cp = new Comparator<TreePath>() { + Comparator<TreePath> cp = (o1, o2) -> { + int row1 = tree.getRowForPath(o1); + int row2 = tree.getRowForPath(o2); - @Override - public int compare(TreePath o1, TreePath o2) { - int row1 = tree.getRowForPath(o1); - int row2 = tree.getRowForPath(o2); - - return row1<row2 ? -1 : (row1==row2 ? 0 : 1); - } + return Integer.compare(row1, row2); }; Arrays.sort(paths, cp); } - @Override protected void exportDone(JComponent source, Transferable data, int action) { @@ -198,7 +190,6 @@ public class JMeterTreeTransferHandler extends TransferHandler { return MenuFactory.canAddTo(target, nodes); } - @Override public boolean importData(TransferHandler.TransferSupport support) { if (!canImport(support)) { @@ -275,7 +266,6 @@ public class JMeterTreeTransferHandler extends TransferHandler { return true; } - private JMeterTreeNode[] getDraggedNodes(Transferable t) { JMeterTreeNode[] nodes = null; try { @@ -287,7 +277,6 @@ public class JMeterTreeTransferHandler extends TransferHandler { return nodes; } - private class NodesTransferable implements Transferable { JMeterTreeNode[] nodes; diff --git a/src/core/src/main/java/org/apache/jmeter/report/core/Converters.java b/src/core/src/main/java/org/apache/jmeter/report/core/Converters.java index 7bd09ae..96a8b7a 100644 --- a/src/core/src/main/java/org/apache/jmeter/report/core/Converters.java +++ b/src/core/src/main/java/org/apache/jmeter/report/core/Converters.java @@ -33,75 +33,51 @@ public final class Converters { static { - StringConverter<Character> characterConverter = new StringConverter<Character>() { - - @Override - public Character convert(String value) throws ConvertException { - try { - return Character.valueOf(value.charAt(0)); - } catch (NumberFormatException ex) { - throw new ConvertException(value, Character.class.getName(), - ex); - } + StringConverter<Character> characterConverter = value -> { + try { + return Character.valueOf(value.charAt(0)); + } catch (NumberFormatException ex) { + throw new ConvertException(value, Character.class.getName(), ex); } }; CONVERTER_MAP.put(Character.class, characterConverter); CONVERTER_MAP.put(char.class, characterConverter); - StringConverter<Double> doubleConverter = new StringConverter<Double>() { - - @Override - public Double convert(String value) throws ConvertException { - try { - return Double.valueOf(value); - } catch (NumberFormatException ex) { - throw new ConvertException(value, Double.class.getName(), - ex); - } + StringConverter<Double> doubleConverter = value -> { + try { + return Double.valueOf(value); + } catch (NumberFormatException ex) { + throw new ConvertException(value, Double.class.getName(), ex); } }; CONVERTER_MAP.put(Double.class, doubleConverter); CONVERTER_MAP.put(double.class, doubleConverter); - StringConverter<Float> floatConverter = new StringConverter<Float>() { - - @Override - public Float convert(String value) throws ConvertException { - try { - return Float.valueOf(value); - } catch (NumberFormatException ex) { - throw new ConvertException(value, Float.class.getName(), - ex); - } + StringConverter<Float> floatConverter = value -> { + try { + return Float.valueOf(value); + } catch (NumberFormatException ex) { + throw new ConvertException(value, Float.class.getName(), ex); } }; CONVERTER_MAP.put(Float.class, floatConverter); CONVERTER_MAP.put(float.class, floatConverter); - StringConverter<Integer> integerConverter = new StringConverter<Integer>() { - - @Override - public Integer convert(String value) throws ConvertException { - try { - return Integer.valueOf(value.trim()); - } catch (NumberFormatException ex) { - throw new ConvertException(value, Integer.class.getName(), - ex); - } + StringConverter<Integer> integerConverter = value -> { + try { + return Integer.valueOf(value.trim()); + } catch (NumberFormatException ex) { + throw new ConvertException(value, Integer.class.getName(), ex); } }; CONVERTER_MAP.put(Integer.class, integerConverter); CONVERTER_MAP.put(int.class, integerConverter); - StringConverter<Long> longConverter = new StringConverter<Long>() { - - @Override - public Long convert(String value) throws ConvertException { - try { - return Long.valueOf(value.trim()); - } catch (NumberFormatException ex) { - throw new ConvertException(value, Long.class.getName(), ex); - } + StringConverter<Long> longConverter = value -> { + try { + return Long.valueOf(value.trim()); + } catch (NumberFormatException ex) { + throw new ConvertException(value, Long.class.getName(), ex); } }; CONVERTER_MAP.put(Long.class, longConverter); @@ -112,13 +88,7 @@ public final class Converters { CONVERTER_MAP.put(Boolean.class, booleanConverter); CONVERTER_MAP.put(boolean.class, booleanConverter); - CONVERTER_MAP.put(File.class, new StringConverter<File>() { - - @Override - public File convert(String value) throws ConvertException { - return new File(value); - } - }); + CONVERTER_MAP.put(File.class, (StringConverter<File>) File::new); } private Converters() { @@ -128,10 +98,8 @@ public final class Converters { /** * Gets the converter for the specified class. * - * @param <T> - * the target type - * @param clazz - * the target class + * @param <T> the target type + * @param clazz the target class * @return the converter */ @SuppressWarnings("unchecked") @@ -143,15 +111,11 @@ public final class Converters { /** * Converts the specified value to the destination type * - * @param <T> - * the target type - * @param clazz - * the target class - * @param value - * the value to convert + * @param <T> the target type + * @param clazz the target class + * @param value the value to convert * @return the converted value - * @throws ConvertException - * when the conversion failed + * @throws ConvertException when the conversion failed */ public static <T> T convert(Class<T> clazz, String value) throws ConvertException { diff --git a/src/core/src/main/java/org/apache/jmeter/swing/HtmlPane.java b/src/core/src/main/java/org/apache/jmeter/swing/HtmlPane.java index 40ce654..42f9090 100644 --- a/src/core/src/main/java/org/apache/jmeter/swing/HtmlPane.java +++ b/src/core/src/main/java/org/apache/jmeter/swing/HtmlPane.java @@ -22,7 +22,6 @@ import java.awt.Rectangle; import javax.swing.JTextPane; import javax.swing.event.HyperlinkEvent; -import javax.swing.event.HyperlinkListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,19 +35,17 @@ public class HtmlPane extends JTextPane { private static final Logger log = LoggerFactory.getLogger(HtmlPane.class); public HtmlPane() { - this.addHyperlinkListener(new HyperlinkListener() { - @Override - public void hyperlinkUpdate(HyperlinkEvent e) { - if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { - String ref = e.getURL().getRef(); - if (ref != null) { - log.debug("reference to scroll to = '{}'", ref); - if (ref.length() > 0) { - scrollToReference(ref); - } else { // href="#" - scrollRectToVisible(new Rectangle(1,1,1,1)); - } - } + this.addHyperlinkListener(e -> { + if (e.getEventType() != HyperlinkEvent.EventType.ACTIVATED) { + return; + } + String ref = e.getURL().getRef(); + if (ref != null) { + log.debug("reference to scroll to = '{}'", ref); + if (ref.length() > 0) { + scrollToReference(ref); + } else { // href="#" + scrollRectToVisible(new Rectangle(1,1,1,1)); } } }); diff --git a/src/core/src/main/java/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java b/src/core/src/main/java/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java index 3aa0e72..2e7770b 100644 --- a/src/core/src/main/java/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java +++ b/src/core/src/main/java/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java @@ -135,26 +135,20 @@ public abstract class AbstractVisualizer } }); successOnlyLogging = new JCheckBox(JMeterUtils.getResString("log_success_only")); // $NON-NLS-1$ - successOnlyLogging.addActionListener(new ActionListener(){ - @Override - public void actionPerformed(ActionEvent e) { - if (successOnlyLogging.isSelected()) { - errorLogging.setSelected(false); - } + successOnlyLogging.addActionListener(e -> { + if (successOnlyLogging.isSelected()) { + errorLogging.setSelected(false); } }); JButton saveConfigButton = new JButton(JMeterUtils.getResString("config_save_settings")); // $NON-NLS-1$ - saveConfigButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - SavePropertyDialog d = new SavePropertyDialog( - GuiPackage.getInstance().getMainFrame(), - JMeterUtils.getResString("sample_result_save_configuration"), // $NON-NLS-1$ - true, collector.getSaveConfig()); - d.pack(); - ComponentUtil.centerComponentInComponent(GuiPackage.getInstance().getMainFrame(), d); - d.setVisible(true); - } + saveConfigButton.addActionListener(e -> { + SavePropertyDialog d = new SavePropertyDialog( + GuiPackage.getInstance().getMainFrame(), + JMeterUtils.getResString("sample_result_save_configuration"), // $NON-NLS-1$ + true, collector.getSaveConfig()); + d.pack(); + ComponentUtil.centerComponentInComponent(GuiPackage.getInstance().getMainFrame(), d); + d.setVisible(true); }); filePanel = new FilePanel(JMeterUtils.getResString("file_visualizer_output_file"), EXTS); // $NON-NLS-1$ @@ -163,7 +157,6 @@ public abstract class AbstractVisualizer filePanel.add(errorLogging); filePanel.add(successOnlyLogging); filePanel.add(saveConfigButton); - } @Override diff --git a/src/jorphan/src/main/java/org/apache/jorphan/gui/MenuScroller.java b/src/jorphan/src/main/java/org/apache/jorphan/gui/MenuScroller.java index 192ce2b..e404f59 100644 --- a/src/jorphan/src/main/java/org/apache/jorphan/gui/MenuScroller.java +++ b/src/jorphan/src/main/java/org/apache/jorphan/gui/MenuScroller.java @@ -22,8 +22,6 @@ import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; @@ -623,13 +621,9 @@ public class MenuScroller { private static final long serialVersionUID = 1; public MenuScrollTimer(final int increment, int interval) { - super(interval, new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - firstIndex += increment; - refreshMenu(); - } + super(interval, e -> { + firstIndex += increment; + refreshMenu(); }); } } diff --git a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java index 0b158d7..fc84fab 100644 --- a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java +++ b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java @@ -21,7 +21,6 @@ package org.apache.jmeter.protocol.http.sampler; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.InetAddress; @@ -199,27 +198,13 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { private static final Logger log = LoggerFactory.getLogger(HTTPHC4Impl.class); - private static final InputStreamFactory GZIP = new InputStreamFactory() { - @Override - public InputStream create(final InputStream instream) throws IOException { - return new LaxGZIPInputStream(instream, GZIP_RELAX_MODE); - } - }; + private static final InputStreamFactory GZIP = + instream -> new LaxGZIPInputStream(instream, GZIP_RELAX_MODE); - private static final InputStreamFactory DEFLATE = new InputStreamFactory() { - @Override - public InputStream create(final InputStream instream) throws IOException { - return new LaxDeflateInputStream(instream, DEFLATE_RELAX_MODE); - } + private static final InputStreamFactory DEFLATE = + instream -> new LaxDeflateInputStream(instream, DEFLATE_RELAX_MODE); - }; - - private static final InputStreamFactory BROTLI = new InputStreamFactory() { - @Override - public InputStream create(final InputStream instream) throws IOException { - return new BrotliInputStream(instream); - } - }; + private static final InputStreamFactory BROTLI = BrotliInputStream::new; private static final class PreemptiveAuthRequestInterceptor implements HttpRequestInterceptor { @Override @@ -382,11 +367,8 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { }; private static final String DIGEST_PARAMETERS = DigestParameters.VARIABLE_NAME; - - private static final HttpRequestInterceptor PREEMPTIVE_AUTH_INTERCEPTOR = new PreemptiveAuthRequestInterceptor(); - // see https://stackoverflow.com/questions/26166469/measure-bandwidth-usage-with-apache-httpcomponents-httpclient private static final HttpRequestExecutor REQUEST_EXECUTOR = new HttpRequestExecutor() { @Override @@ -406,9 +388,6 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { } }; - /** - * Headers to save - */ private static final String[] HEADERS_TO_SAVE = new String[]{ "content-length", "content-encoding", @@ -809,16 +788,11 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { * Setup Body of request if different from GET. * Field HTTPSampleResult#queryString of result is modified in the 2 cases * - * @param method - * String HTTP method - * @param result - * {@link HTTPSampleResult} - * @param httpRequest - * {@link HttpRequestBase} - * @param localContext - * {@link HttpContext} - * @throws IOException - * when posting data fails due to I/O + * @param method String HTTP method + * @param result {@link HTTPSampleResult} + * @param httpRequest {@link HttpRequestBase} + * @param localContext {@link HttpContext} + * @throws IOException when posting data fails due to I/O */ protected void handleMethod(String method, HTTPSampleResult result, HttpRequestBase httpRequest, HttpContext localContext) throws IOException { @@ -1196,14 +1170,10 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { * <li>Calls setConnectionCookie to setup Cookie</li> * </ul> * - * @param url - * {@link URL} of the request - * @param httpRequest - * http request for the request - * @param res - * sample result to set cookies on - * @throws IOException - * if hostname/ip to use could not be figured out + * @param url {@link URL} of the request + * @param httpRequest http request for the request + * @param res sample result to set cookies on + * @throws IOException if hostname/ip to use could not be figured out */ protected void setupRequest(URL url, HttpRequestBase httpRequest, HTTPSampleResult res) throws IOException { @@ -1266,8 +1236,7 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { /** * Gets the ResponseHeaders * - * @param response - * containing the headers + * @param response containing the headers * @return string containing the headers, one per line */ private String getResponseHeaders(HttpResponse response) { @@ -1326,14 +1295,11 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { * Extracts all the required non-cookie headers for that particular URL request and * sets them in the <code>HttpMethod</code> passed in * - * @param request - * <code>HttpRequest</code> which represents the request - * @param url - * <code>URL</code> of the URL request - * @param headerManager - * the <code>HeaderManager</code> containing all the cookies - * for this <code>UrlConfig</code> - * @param cacheManager the CacheManager (may be null) + * @param request <code>HttpRequest</code> which represents the request + * @param url <code>URL</code> of the URL request + * @param headerManager the <code>HeaderManager</code> containing all the cookies + * for this <code>UrlConfig</code> + * @param cacheManager the CacheManager (may be null) */ protected void setConnectionHeaders(HttpRequestBase request, URL url, HeaderManager headerManager, CacheManager cacheManager) { if (headerManager != null) { @@ -1375,11 +1341,9 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { * Get port from the value of the Host header, or return the given * defaultValue * - * @param hostHeaderValue - * value of the http Host header - * @param defaultValue - * value to be used, when no port could be extracted from - * hostHeaderValue + * @param hostHeaderValue value of the http Host header + * @param defaultValue value to be used, when no port could be extracted from + * hostHeaderValue * @return integer representing the port for the host header */ private int getPortFromHostHeader(String hostHeaderValue, int defaultValue) { @@ -1396,8 +1360,7 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { /** * Get all the request headers except Cookie for the <code>HttpRequest</code> * - * @param method - * <code>HttpMethod</code> which represents the request + * @param method <code>HttpMethod</code> which represents the request * @return the headers as a string */ private String getAllHeadersExceptCookie(HttpRequest method) { @@ -1407,8 +1370,7 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { /** * Get only Cookie header for the <code>HttpRequest</code> * - * @param method - * <code>HttpMethod</code> which represents the request + * @param method <code>HttpMethod</code> which represents the request * @return the headers as a string */ private String getOnlyCookieFromHeaders(HttpRequest method) { @@ -1423,8 +1385,7 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { /** * Get only cookies from request headers for the <code>HttpRequest</code> * - * @param method - * <code>HttpMethod</code> which represents the request + * @param method <code>HttpMethod</code> which represents the request * @return the headers as a string */ private String getFromHeadersMatchingPredicate(HttpRequest method, Predicate<String> predicate) { @@ -1756,7 +1717,6 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { /** - * * @return the value of {@link #getContentEncoding()}; forced to null if empty */ private String getContentEncodingOrNull() { @@ -1809,9 +1769,6 @@ public class HTTPHC4Impl extends HTTPHCAbstractImpl { closeThreadLocalConnections(); } - /** - * - */ private void closeThreadLocalConnections() { // Does not need to be synchronised, as all access is from same thread Map<HttpClientKey, MutableTriple<CloseableHttpClient, AuthState, PoolingHttpClientConnectionManager>> diff --git a/src/protocol/junit/src/main/java/org/apache/jmeter/protocol/java/sampler/JUnitSampler.java b/src/protocol/junit/src/main/java/org/apache/jmeter/protocol/java/sampler/JUnitSampler.java index 190947b..dba1fad 100644 --- a/src/protocol/junit/src/main/java/org/apache/jmeter/protocol/java/sampler/JUnitSampler.java +++ b/src/protocol/junit/src/main/java/org/apache/jmeter/protocol/java/sampler/JUnitSampler.java @@ -670,32 +670,24 @@ public class JUnitSampler extends AbstractSampler implements ThreadListener { } final AnnotatedTestCase at = new AnnotatedTestCase(m, expectedException, timeout); testCase = at; - protectable = new Protectable() { - @Override - public void protect() throws Throwable { - at.runTest(); - } - }; + protectable = at::runTest; } else { this.testCase = (TestCase) this.testObject; final Object theClazz = this.testObject; // Must be final to create instance - protectable = new Protectable() { - @Override - public void protect() throws Throwable { - try { - m.invoke(theClazz,new Object[0]); - } catch (InvocationTargetException e) { - /* - * Calling a method via reflection results in wrapping any - * Exceptions in ITE; unwrap these here so runProtected can - * allocate them correctly. - */ - Throwable t = e.getCause(); - if (t != null) { - throw t; - } - throw e; + protectable = () -> { + try { + m.invoke(theClazz, new Object[0]); + } catch (InvocationTargetException e) { + /* + * Calling a method via reflection results in wrapping any + * Exceptions in ITE; unwrap these here so runProtected can + * allocate them correctly. + */ + Throwable t = e.getCause(); + if (t != null) { + throw t; } + throw e; } }; }
