package org.jmeterplugins.tools; import java.awt.BorderLayout; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.swing.BoxLayout; import javax.swing.JPanel; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import org.apache.jmeter.samplers.SampleResult; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; import org.jmeterplugins.save.MergeResultsService; import kg.apc.jmeter.graphs.AbstractGraphPanelVisualizer; import kg.apc.jmeter.vizualizers.CorrectedResultCollector; import kg.apc.jmeter.vizualizers.JSettingsPanel; /** * */ public class FilterResults extends AbstractGraphPanelVisualizer { private static final long serialVersionUID = 6432873068917332588L; private static final Logger log = LoggingManager.getLoggerForClass(); private Collection<String> emptyCollection = new ArrayList<String>(); private List<SampleResult> samples = new ArrayList<SampleResult>(); public FilterResults() { super(); init(); } /** * Main visualizer setup. */ private void init() { this.setLayout(new BorderLayout()); // MAIN PANEL JPanel mainPanel = new JPanel(); Border margin = new EmptyBorder(10, 10, 5, 10); mainPanel.setBorder(margin); mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS)); mainPanel.add(makeTitlePanel()); } // do not insert this vizualiser in any JMeter menu @Override public Collection<String> getMenuCategories() { return emptyCollection; } public void add(SampleResult res) { if (!isSampleIncluded(res)) { return; } res.setSaveConfig(collector.getSaveConfig()); samples.add(res); } public CorrectedResultCollector getCollector() { return (CorrectedResultCollector) createTestElement(); } public int doJob(CorrectedResultCollector collector, String outputFile) { log.info("Setup filtering..."); setUpFiltering((CorrectedResultCollector) collector); log.info("Loading file..."); collector.loadExistingFile(); if (!samples.isEmpty()) { log.info("Merging results to " + outputFile); collector.setProperty("filename", outputFile); MergeResultsService mrs = new MergeResultsService(); mrs.mergeSamples((CorrectedResultCollector) collector, samples); samples.clear(); } return 0; } @Override public String getWikiPage() { return "FilterResults"; } @Override public String getLabelResource() { return this.getClass().getSimpleName(); //$NON-NLS-1$ } @Override protected JSettingsPanel createSettingsPanel() { return new JSettingsPanel(this, 0); } @Override public String getStaticLabel() { return "Nobody never should not see this. No, no, no."; } }