jmeter-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fschumac...@apache.org
Subject svn commit: r1719183 [4/5] - in /jmeter/trunk/src/core/org/apache/jmeter: ./ report/config/ report/core/ report/dashboard/ report/processor/ report/processor/graph/ report/processor/graph/impl/
Date Thu, 10 Dec 2015 18:55:23 GMT
Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/TaggerConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/TaggerConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/TaggerConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/TaggerConsumer.java Thu Dec 10 18:55:22 2015
@@ -49,83 +49,83 @@ public class TaggerConsumer<TIndex> exte
      * @return the label of the tag used by this consumer.
      */
     public final String getTagLabel() {
-	return tagLabel;
+        return tagLabel;
     }
 
     public final void setTagLabel(String tagLabel) {
-	// TODO what if tagLabel is null or empty ?
-	this.tagLabel = tagLabel;
+        // TODO what if tagLabel is null or empty ?
+        this.tagLabel = tagLabel;
     }
 
     public final SampleIndexer<TIndex> getSampleIndexer() {
-	return sampleIndexer;
+        return sampleIndexer;
     }
 
     public final void setSampleIndexer(SampleIndexer<TIndex> sampleIndexer) {
-	this.sampleIndexer = sampleIndexer;
+        this.sampleIndexer = sampleIndexer;
     }
 
     // Adds a new field in the sample metadata for each channel
     private void initProducedMetadata() {
-	builders.clear();
-	int channelCount = getConsumedChannelCount();
-	for (int i = 0; i < channelCount; i++) {
-	    // Get the metadata for the current channel
-	    SampleMetadata consumedMetadata = getConsumedMetadata(i);
-
-	    // Copy metadata to an array
-	    int colCount = consumedMetadata.getColumnCount();
-	    String[] names = new String[colCount + 1];
-	    for (int j = 0; j < colCount; j++) {
-		names[j] = consumedMetadata.getColumnName(j);
-	    }
-
-	    // Add the new field
-	    names[colCount] = tagLabel;
-
-	    // Build the produced metadata from the array
-	    SampleMetadata producedMetadata = new SampleMetadata(
-		    consumedMetadata.getSeparator(), names);
-
-	    // Add a sample builder for the current channel
-	    builders.add(new SampleBuilder(producedMetadata));
-	    super.setProducedMetadata(producedMetadata, i);
-	}
+        builders.clear();
+        int channelCount = getConsumedChannelCount();
+        for (int i = 0; i < channelCount; i++) {
+            // Get the metadata for the current channel
+            SampleMetadata consumedMetadata = getConsumedMetadata(i);
+
+            // Copy metadata to an array
+            int colCount = consumedMetadata.getColumnCount();
+            String[] names = new String[colCount + 1];
+            for (int j = 0; j < colCount; j++) {
+                names[j] = consumedMetadata.getColumnName(j);
+            }
+
+            // Add the new field
+            names[colCount] = tagLabel;
+
+            // Build the produced metadata from the array
+            SampleMetadata producedMetadata = new SampleMetadata(
+                    consumedMetadata.getSeparator(), names);
+
+            // Add a sample builder for the current channel
+            builders.add(new SampleBuilder(producedMetadata));
+            super.setProducedMetadata(producedMetadata, i);
+        }
     }
 
     private Sample createIndexedSample(Sample sample, int channel, TIndex index) {
-	SampleBuilder builder = builders.get(channel);
-	SampleMetadata metadata = builder.getMetadata();
-	int colCount = metadata.getColumnCount();
-	for (int i = 0; i < colCount - 1; i++) {
-	    builder.add(sample.getString(i));
-	}
-	builder.add(String.valueOf(index));
-	return builder.build();
+        SampleBuilder builder = builders.get(channel);
+        SampleMetadata metadata = builder.getMetadata();
+        int colCount = metadata.getColumnCount();
+        for (int i = 0; i < colCount - 1; i++) {
+            builder.add(sample.getString(i));
+        }
+        builder.add(String.valueOf(index));
+        return builder.build();
     }
 
     @Override
     public void startConsuming() {
-	// TODO what if sampleIndexer is null ?
-	if (sampleIndexer != null) {
-	    sampleIndexer.reset();
-	}
-	initProducedMetadata();
-	super.startProducing();
+        // TODO what if sampleIndexer is null ?
+        if (sampleIndexer != null) {
+            sampleIndexer.reset();
+        }
+        initProducedMetadata();
+        super.startProducing();
     }
 
     @Override
     public void consume(Sample sample, int channel) {
-	// TODO what if s or sampleIndexer are null ?
-	if (sample != null && sampleIndexer != null) {
-	    TIndex index = sampleIndexer.calculateIndex(sample);
-	    Sample indexedSample = createIndexedSample(sample, channel, index);
-	    super.produce(indexedSample, channel);
-	}
+        // TODO what if s or sampleIndexer are null ?
+        if (sample != null && sampleIndexer != null) {
+            TIndex index = sampleIndexer.calculateIndex(sample);
+            Sample indexedSample = createIndexedSample(sample, channel, index);
+            super.produce(indexedSample, channel);
+        }
     }
 
     @Override
     public void stopConsuming() {
-	super.stopProducing();
+        super.stopProducing();
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -112,7 +112,7 @@ public abstract class AbstractGraphConsu
      * @return the group information
      */
     protected final HashMap<String, GroupInfo> getGroupInfos() {
-	return groupInfos;
+        return groupInfos;
     }
 
     /**
@@ -121,7 +121,7 @@ public abstract class AbstractGraphConsu
      * @return the revertKeysAndValues
      */
     protected final boolean revertsKeysAndValues() {
-	return revertsKeysAndValues;
+        return revertsKeysAndValues;
     }
 
     /**
@@ -131,7 +131,7 @@ public abstract class AbstractGraphConsu
      *            the reverts keys and values
      */
     protected final void setRevertKeysAndValues(boolean revertsKeysAndValues) {
-	this.revertsKeysAndValues = revertsKeysAndValues;
+        this.revertsKeysAndValues = revertsKeysAndValues;
     }
 
     /**
@@ -140,7 +140,7 @@ public abstract class AbstractGraphConsu
      * @return true if percentiles are rendered; false otherwise
      */
     public final boolean rendersPercentiles() {
-	return renderPercentiles;
+        return renderPercentiles;
     }
 
     /**
@@ -150,7 +150,7 @@ public abstract class AbstractGraphConsu
      *            the render mode to set
      */
     public final void setRenderPercentiles(boolean renderPercentiles) {
-	this.renderPercentiles = renderPercentiles;
+        this.renderPercentiles = renderPercentiles;
     }
 
     /**
@@ -159,7 +159,7 @@ public abstract class AbstractGraphConsu
      * @return the keys selector
      */
     protected final GraphKeysSelector getKeysSelector() {
-	return keysSelector;
+        return keysSelector;
     }
 
     /**
@@ -168,7 +168,7 @@ public abstract class AbstractGraphConsu
      * @return the format of the "overall" seriesData name
      */
     public final String getOverallSeriesFormat() {
-	return overallSeriesFormat;
+        return overallSeriesFormat;
     }
 
     /**
@@ -178,7 +178,7 @@ public abstract class AbstractGraphConsu
      *            the name of "overall" seriesData to set
      */
     public final void setOverallSeriesFormat(String overallSeriesFormat) {
-	this.overallSeriesFormat = overallSeriesFormat;
+        this.overallSeriesFormat = overallSeriesFormat;
     }
 
     /**
@@ -187,7 +187,7 @@ public abstract class AbstractGraphConsu
      * @return the format for the name of aggregated keys seriesData
      */
     public final String getAggregatedKeysSeriesFormat() {
-	return aggregatedKeysSeriesFormat;
+        return aggregatedKeysSeriesFormat;
     }
 
     /**
@@ -197,16 +197,16 @@ public abstract class AbstractGraphConsu
      *            the format for the name of aggregated keys seriesData to set
      */
     public final void setAggregatedKeysSeriesFormat(
-	    String aggregatedKeysSeriesFormat) {
-	this.aggregatedKeysSeriesFormat = aggregatedKeysSeriesFormat;
+            String aggregatedKeysSeriesFormat) {
+        this.aggregatedKeysSeriesFormat = aggregatedKeysSeriesFormat;
     }
 
     /**
      * Instantiates a new abstract graph consumer.
      */
     protected AbstractGraphConsumer() {
-	keysSelector = createKeysSelector();
-	groupInfos = new HashMap<>(createGroupInfos());
+        keysSelector = createKeysSelector();
+        groupInfos = new HashMap<>(createGroupInfos());
     }
 
     protected abstract GraphKeysSelector createKeysSelector();
@@ -214,13 +214,13 @@ public abstract class AbstractGraphConsu
     protected abstract Map<String, GroupInfo> createGroupInfos();
 
     private void setMinResult(MapResultData result, String name, Double value) {
-	ValueResultData valueResult = (ValueResultData) result.getResult(name);
-	valueResult.setValue(Math.min((Double) valueResult.getValue(), value));
+        ValueResultData valueResult = (ValueResultData) result.getResult(name);
+        valueResult.setValue(Math.min((Double) valueResult.getValue(), value));
     }
 
     private void setMaxResult(MapResultData result, String name, Double value) {
-	ValueResultData valueResult = (ValueResultData) result.getResult(name);
-	valueResult.setValue(Math.max((Double) valueResult.getValue(), value));
+        ValueResultData valueResult = (ValueResultData) result.getResult(name);
+        valueResult.setValue(Math.max((Double) valueResult.getValue(), value));
     }
 
     /**
@@ -232,122 +232,121 @@ public abstract class AbstractGraphConsu
      *            the groupData map
      */
     private void addKeyData(MapResultData result, String group, String series,
-	    SeriesData seriesData, boolean aggregated) {
+            SeriesData seriesData, boolean aggregated) {
 
-	// Add to the result map
-	ListResultData seriesList = (ListResultData) result
-	        .getResult(RESULT_SERIES);
-
-	// Looks for series result using its name
-	MapResultData seriesResult = null;
-	int index = 0;
-	int size = seriesList.getSize();
-	while (seriesResult == null && index < size) {
-	    MapResultData currSeries = (MapResultData) seriesList.get(index);
-	    String name = String.valueOf(((ValueResultData) currSeries
-		    .getResult(RESULT_SERIES_NAME)).getValue());
-	    if (Objects.equals(name, series)) {
-		seriesResult = currSeries;
-	    }
-	    index++;
-	}
-
-	// Create series result if not found
-	if (seriesResult == null) {
-	    seriesResult = new MapResultData();
-	    seriesResult.setResult(RESULT_SERIES_NAME, new ValueResultData(
-		    series));
-	    seriesResult.setResult(RESULT_SERIES_IS_CONTROLLER,
-		    new ValueResultData(seriesData.isControllersSeries()));
-	    seriesResult.setResult(RESULT_SERIES_IS_OVERALL,
-		    new ValueResultData(seriesData.isOverallSeries()));
-	    seriesResult.setResult(RESULT_SERIES_DATA, new ListResultData());
-	    seriesList.addResult(seriesResult);
-	}
-
-	ListResultData dataResult = (ListResultData) seriesResult
-	        .getResult(RESULT_SERIES_DATA);
-
-	// Populate it with data from groupData
-	Map<Double, Aggregator> aggInfo;
-	if (aggregated == false) {
-	    aggInfo = seriesData.getAggregatorInfo();
-	} else {
-	    series = String.format(aggregatedKeysSeriesFormat, series);
-	    aggInfo = new HashMap<>();
-	    aggInfo.put(seriesData.getKeysAggregator().getResult(),
-		    seriesData.getValuesAggregator());
-	}
-	if (renderPercentiles == false) {
-	    for (Map.Entry<Double, Aggregator> entry : aggInfo.entrySet()) {
-		// Init key and value depending on revertsKeysAndValues property
-		Double key = entry.getKey();
-		Double value = entry.getValue().getResult();
-
-		// Create result storage for coordinates
-		ListResultData coordResult = new ListResultData();
-
-		if (revertsKeysAndValues == false) {
-		    key = entry.getKey();
-		    value = entry.getValue().getResult();
-		} else {
-		    key = entry.getValue().getResult();
-		    value = entry.getKey();
-		}
-		coordResult.addResult(new ValueResultData(key));
-		coordResult.addResult(new ValueResultData(value));
-		dataResult.addResult(coordResult);
-		setMinResult(result, RESULT_MIN_X, key);
-		setMaxResult(result, RESULT_MAX_X, key);
-		setMinResult(result, RESULT_MIN_Y, value);
-		setMaxResult(result, RESULT_MAX_Y, value);
-	    }
-	} else {
-	    long count = seriesData.getCount();
-	    int rank = 0;
-	    double percent = 0;
-	    TreeMap<Double, Aggregator> sortedInfo = new TreeMap<>(
-		    aggInfo);
-	    if (revertsKeysAndValues == false) {
-		for (Map.Entry<Double, Aggregator> entry : sortedInfo
-		        .entrySet()) {
-		    double value = entry.getKey();
-		    percent += (double) 100 * entry.getValue().getCount()
-			    / count;
-		    double percentile = (double) rank / 10;
-		    while (percentile < percent) {
-			ListResultData coordResult = new ListResultData();
-			coordResult.addResult(new ValueResultData(percentile));
-			coordResult.addResult(new ValueResultData(value));
-			dataResult.addResult(coordResult);
-			percentile = (double) ++rank / 10;
-		    }
-		    setMinResult(result, RESULT_MIN_Y, value);
-		    setMaxResult(result, RESULT_MAX_Y, value);
-		}
-		setMinResult(result, RESULT_MIN_X, 0d);
-		setMaxResult(result, RESULT_MAX_X, 100d);
-	    } else {
-		for (Map.Entry<Double, Aggregator> entry : sortedInfo
-		        .entrySet()) {
-		    double value = entry.getKey();
-		    percent += (double) 100 * entry.getValue().getCount()
-			    / count;
-		    double percentile = (double) rank / 10;
-		    while (percentile < percent) {
-			ListResultData coordResult = new ListResultData();
-			coordResult.addResult(new ValueResultData(value));
-			coordResult.addResult(new ValueResultData(percentile));
-			dataResult.addResult(coordResult);
-			percentile = (double) ++rank / 10;
-		    }
-		    setMinResult(result, RESULT_MIN_X, value);
-		    setMaxResult(result, RESULT_MAX_X, value);
-		}
-		setMinResult(result, RESULT_MIN_Y, 0d);
-		setMaxResult(result, RESULT_MAX_Y, 100d);
-	    }
-	}
+        // Add to the result map
+        ListResultData seriesList = (ListResultData) result
+                .getResult(RESULT_SERIES);
+
+        // Looks for series result using its name
+        MapResultData seriesResult = null;
+        int index = 0;
+        int size = seriesList.getSize();
+        while (seriesResult == null && index < size) {
+            MapResultData currSeries = (MapResultData) seriesList.get(index);
+            String name = String.valueOf(((ValueResultData) currSeries
+                    .getResult(RESULT_SERIES_NAME)).getValue());
+            if (Objects.equals(name, series)) {
+                seriesResult = currSeries;
+            }
+            index++;
+        }
+
+        // Create series result if not found
+        if (seriesResult == null) {
+            seriesResult = new MapResultData();
+            seriesResult.setResult(RESULT_SERIES_NAME, new ValueResultData(
+                    series));
+            seriesResult.setResult(RESULT_SERIES_IS_CONTROLLER,
+                    new ValueResultData(seriesData.isControllersSeries()));
+            seriesResult.setResult(RESULT_SERIES_IS_OVERALL,
+                    new ValueResultData(seriesData.isOverallSeries()));
+            seriesResult.setResult(RESULT_SERIES_DATA, new ListResultData());
+            seriesList.addResult(seriesResult);
+        }
+
+        ListResultData dataResult = (ListResultData) seriesResult
+                .getResult(RESULT_SERIES_DATA);
+
+        // Populate it with data from groupData
+        Map<Double, Aggregator> aggInfo;
+        if (aggregated == false) {
+            aggInfo = seriesData.getAggregatorInfo();
+        } else {
+            series = String.format(aggregatedKeysSeriesFormat, series);
+            aggInfo = new HashMap<>();
+            aggInfo.put(seriesData.getKeysAggregator().getResult(),
+                    seriesData.getValuesAggregator());
+        }
+        if (renderPercentiles == false) {
+            for (Map.Entry<Double, Aggregator> entry : aggInfo.entrySet()) {
+                // Init key and value depending on revertsKeysAndValues property
+                Double key = entry.getKey();
+                Double value = entry.getValue().getResult();
+
+                // Create result storage for coordinates
+                ListResultData coordResult = new ListResultData();
+
+                if (revertsKeysAndValues == false) {
+                    key = entry.getKey();
+                    value = entry.getValue().getResult();
+                } else {
+                    key = entry.getValue().getResult();
+                    value = entry.getKey();
+                }
+                coordResult.addResult(new ValueResultData(key));
+                coordResult.addResult(new ValueResultData(value));
+                dataResult.addResult(coordResult);
+                setMinResult(result, RESULT_MIN_X, key);
+                setMaxResult(result, RESULT_MAX_X, key);
+                setMinResult(result, RESULT_MIN_Y, value);
+                setMaxResult(result, RESULT_MAX_Y, value);
+            }
+        } else {
+            long count = seriesData.getCount();
+            int rank = 0;
+            double percent = 0;
+            TreeMap<Double, Aggregator> sortedInfo = new TreeMap<>(aggInfo);
+            if (revertsKeysAndValues == false) {
+                for (Map.Entry<Double, Aggregator> entry : sortedInfo
+                        .entrySet()) {
+                    double value = entry.getKey();
+                    percent += (double) 100 * entry.getValue().getCount()
+                            / count;
+                    double percentile = (double) rank / 10;
+                    while (percentile < percent) {
+                        ListResultData coordResult = new ListResultData();
+                        coordResult.addResult(new ValueResultData(percentile));
+                        coordResult.addResult(new ValueResultData(value));
+                        dataResult.addResult(coordResult);
+                        percentile = (double) ++rank / 10;
+                    }
+                    setMinResult(result, RESULT_MIN_Y, value);
+                    setMaxResult(result, RESULT_MAX_Y, value);
+                }
+                setMinResult(result, RESULT_MIN_X, 0d);
+                setMaxResult(result, RESULT_MAX_X, 100d);
+            } else {
+                for (Map.Entry<Double, Aggregator> entry : sortedInfo
+                        .entrySet()) {
+                    double value = entry.getKey();
+                    percent += (double) 100 * entry.getValue().getCount()
+                            / count;
+                    double percentile = (double) rank / 10;
+                    while (percentile < percent) {
+                        ListResultData coordResult = new ListResultData();
+                        coordResult.addResult(new ValueResultData(value));
+                        coordResult.addResult(new ValueResultData(percentile));
+                        dataResult.addResult(coordResult);
+                        percentile = (double) ++rank / 10;
+                    }
+                    setMinResult(result, RESULT_MIN_X, value);
+                    setMaxResult(result, RESULT_MAX_X, value);
+                }
+                setMinResult(result, RESULT_MIN_Y, 0d);
+                setMaxResult(result, RESULT_MAX_Y, 100d);
+            }
+        }
     }
 
     /**
@@ -361,54 +360,54 @@ public abstract class AbstractGraphConsu
      *            the value
      */
     private void aggregateValue(AggregatorFactory factory, SeriesData data,
-	    double key, double value) {
-	Map<Double, Aggregator> aggInfo = data.getAggregatorInfo();
+            double key, double value) {
+        Map<Double, Aggregator> aggInfo = data.getAggregatorInfo();
 
-	// Get or create aggregator
-	Aggregator aggregator = aggInfo.get(key);
-	if (aggregator == null) {
-	    aggregator = factory.createValueAggregator();
-	    aggInfo.put(key, aggregator);
-	}
-
-	// Add the value to the aggregator
-	aggregator.addValue(value);
-
-	// Increment the count of sample for this series
-	data.incrementCount();
-
-	// Aggregate keys if needed (if aggregated keys series is set)
-	Aggregator keysAgg = data.getKeysAggregator();
-	if (keysAgg != null) {
-	    keysAgg.addValue(key);
-	}
-
-	// Aggregate values if needed (if aggregated keys series is set)
-	Aggregator valuesAgg = data.getValuesAggregator();
-	if (valuesAgg != null) {
-	    valuesAgg.addValue(value);
-	}
+        // Get or create aggregator
+        Aggregator aggregator = aggInfo.get(key);
+        if (aggregator == null) {
+            aggregator = factory.createValueAggregator();
+            aggInfo.put(key, aggregator);
+        }
+
+        // Add the value to the aggregator
+        aggregator.addValue(value);
+
+        // Increment the count of sample for this series
+        data.incrementCount();
+
+        // Aggregate keys if needed (if aggregated keys series is set)
+        Aggregator keysAgg = data.getKeysAggregator();
+        if (keysAgg != null) {
+            keysAgg.addValue(key);
+        }
+
+        // Aggregate values if needed (if aggregated keys series is set)
+        Aggregator valuesAgg = data.getValuesAggregator();
+        if (valuesAgg != null) {
+            valuesAgg.addValue(value);
+        }
     }
 
     private MapResultData createResult() {
-	MapResultData result = new MapResultData();
-	result.setResult(RESULT_MIN_X, new ValueResultData(Double.MAX_VALUE));
-	result.setResult(RESULT_MAX_X, new ValueResultData(Double.MIN_VALUE));
-	result.setResult(RESULT_MIN_Y, new ValueResultData(Double.MAX_VALUE));
-	result.setResult(RESULT_MAX_Y, new ValueResultData(Double.MIN_VALUE));
-	result.setResult(RESULT_SERIES, new ListResultData());
-
-	boolean supportsControllersDiscrimination = true;
-	Iterator<GroupInfo> it = groupInfos.values().iterator();
-	while (supportsControllersDiscrimination && it.hasNext()) {
-	    supportsControllersDiscrimination &= it.next().getSeriesSelector()
-		    .allowsControllersDiscrimination();
-	}
-	result.setResult(RESULT_SUPPORTS_CONTROLLERS_DISCRIMINATION,
-	        new ValueResultData(supportsControllersDiscrimination));
+        MapResultData result = new MapResultData();
+        result.setResult(RESULT_MIN_X, new ValueResultData(Double.MAX_VALUE));
+        result.setResult(RESULT_MAX_X, new ValueResultData(Double.MIN_VALUE));
+        result.setResult(RESULT_MIN_Y, new ValueResultData(Double.MAX_VALUE));
+        result.setResult(RESULT_MAX_Y, new ValueResultData(Double.MIN_VALUE));
+        result.setResult(RESULT_SERIES, new ListResultData());
+
+        boolean supportsControllersDiscrimination = true;
+        Iterator<GroupInfo> it = groupInfos.values().iterator();
+        while (supportsControllersDiscrimination && it.hasNext()) {
+            supportsControllersDiscrimination &= it.next().getSeriesSelector()
+                    .allowsControllersDiscrimination();
+        }
+        result.setResult(RESULT_SUPPORTS_CONTROLLERS_DISCRIMINATION,
+                new ValueResultData(supportsControllersDiscrimination));
 
-	initializeExtraResults(result);
-	return result;
+        initializeExtraResults(result);
+        return result;
     }
 
     /**
@@ -428,13 +427,13 @@ public abstract class AbstractGraphConsu
     @Override
     public void startConsuming() {
 
-	// Broadcast metadata to consumes for each channel
-	int channelCount = getConsumedChannelCount();
-	for (int i = 0; i < channelCount; i++) {
-	    super.setProducedMetadata(getConsumedMetadata(i), i);
-	}
+        // Broadcast metadata to consumes for each channel
+        int channelCount = getConsumedChannelCount();
+        for (int i = 0; i < channelCount; i++) {
+            super.setProducedMetadata(getConsumedMetadata(i), i);
+        }
 
-	super.startProducing();
+        super.startProducing();
     }
 
     /*
@@ -447,44 +446,44 @@ public abstract class AbstractGraphConsu
     @Override
     public void consume(Sample sample, int channel) {
 
-	// Get key from sample
-	Double key = keysSelector.select(sample);
+        // Get key from sample
+        Double key = keysSelector.select(sample);
 
-	// Build groupData maps
-	for (Map.Entry<String, GroupInfo> entryGroup : groupInfos.entrySet()) {
-	    GroupInfo groupInfo = entryGroup.getValue();
-	    GroupData groupData = groupInfo.getGroupData();
-	    AggregatorFactory factory = groupInfo.getAggregatorFactory();
-	    boolean overallSeries = groupInfo.enablesOverallSeries();
-	    boolean aggregatedKeysSeries = groupInfo
-		    .enablesAggregatedKeysSeries();
-
-	    for (String seriesName : groupInfo.getSeriesSelector().select(
-		    sample)) {
-		Map<String, SeriesData> seriesInfo = groupData.getSeriesInfo();
-		SeriesData seriesData = seriesInfo.get(seriesName);
-		if (seriesData == null) {
-		    seriesData = new SeriesData(factory, aggregatedKeysSeries,
-			    groupInfo.getSeriesSelector()
-			            .allowsControllersDiscrimination() ? sample
-			            .isController() : false, false);
-		    seriesInfo.put(seriesName, seriesData);
-		}
-
-		// Get the value to aggregate and dispatch it to the groupData
-		double value = groupInfo.getValueSelector().select(seriesName,
-		        sample);
-
-		aggregateValue(factory, seriesData, key, value);
-		if (overallSeries == true) {
-		    SeriesData overallData = groupData.getOverallSeries();
-		    aggregateValue(factory, overallData, key, value);
-		}
+        // Build groupData maps
+        for (Map.Entry<String, GroupInfo> entryGroup : groupInfos.entrySet()) {
+            GroupInfo groupInfo = entryGroup.getValue();
+            GroupData groupData = groupInfo.getGroupData();
+            AggregatorFactory factory = groupInfo.getAggregatorFactory();
+            boolean overallSeries = groupInfo.enablesOverallSeries();
+            boolean aggregatedKeysSeries = groupInfo
+                    .enablesAggregatedKeysSeries();
+
+            for (String seriesName : groupInfo.getSeriesSelector().select(
+                    sample)) {
+                Map<String, SeriesData> seriesInfo = groupData.getSeriesInfo();
+                SeriesData seriesData = seriesInfo.get(seriesName);
+                if (seriesData == null) {
+                    seriesData = new SeriesData(factory, aggregatedKeysSeries,
+                            groupInfo.getSeriesSelector()
+                                    .allowsControllersDiscrimination() ? sample
+                                    .isController() : false, false);
+                    seriesInfo.put(seriesName, seriesData);
+                }
+
+                // Get the value to aggregate and dispatch it to the groupData
+                double value = groupInfo.getValueSelector().select(seriesName,
+                        sample);
+
+                aggregateValue(factory, seriesData, key, value);
+                if (overallSeries == true) {
+                    SeriesData overallData = groupData.getOverallSeries();
+                    aggregateValue(factory, overallData, key, value);
+                }
 
-	    }
-	}
+            }
+        }
 
-	super.produce(sample, channel);
+        super.produce(sample, channel);
     }
 
     /*
@@ -501,49 +500,49 @@ public abstract class AbstractGraphConsu
      */
     @Override
     public void stopConsuming() {
-	super.stopProducing();
+        super.stopProducing();
 
-	MapResultData result = createResult();
+        MapResultData result = createResult();
 
-	// Get the aggregate results from the map
-	for (Map.Entry<String, GroupInfo> groupEntry : groupInfos.entrySet()) {
-	    String groupName = groupEntry.getKey();
-	    GroupInfo groupInfo = groupEntry.getValue();
-	    GroupData groupData = groupInfo.getGroupData();
-	    boolean overallSeries = groupInfo.enablesOverallSeries();
-	    boolean aggregatedKeysSeries = groupInfo
-		    .enablesAggregatedKeysSeries();
-
-	    for (Map.Entry<String, SeriesData> seriesEntry : groupData
-		    .getSeriesInfo().entrySet()) {
-		String seriesName = seriesEntry.getKey();
-		SeriesData seriesData = seriesEntry.getValue();
-		addKeyData(result, groupName, seriesName, seriesData, false);
-		if (aggregatedKeysSeries == true) {
-		    addKeyData(result, groupName, seriesName, seriesData, true);
-		}
-	    }
-
-	    // Add overall values if needed
-	    if (overallSeries == true) {
-		SeriesData overallData = groupData.getOverallSeries();
-		String overallSeriesName = String.format(overallSeriesFormat,
-		        groupName);
-		addKeyData(result, groupName, overallSeriesName, overallData,
-		        false);
-		if (aggregatedKeysSeries == true) {
-		    addKeyData(result, groupName, overallSeriesName,
-			    overallData, true);
-		}
-	    }
-	}
-
-	// Store the result
-	setDataToContext(getName(), result);
-
-	for (GroupInfo groupInfo : groupInfos.values()) {
-	    groupInfo.getGroupData().clear();
-	}
+        // Get the aggregate results from the map
+        for (Map.Entry<String, GroupInfo> groupEntry : groupInfos.entrySet()) {
+            String groupName = groupEntry.getKey();
+            GroupInfo groupInfo = groupEntry.getValue();
+            GroupData groupData = groupInfo.getGroupData();
+            boolean overallSeries = groupInfo.enablesOverallSeries();
+            boolean aggregatedKeysSeries = groupInfo
+                    .enablesAggregatedKeysSeries();
+
+            for (Map.Entry<String, SeriesData> seriesEntry : groupData
+                    .getSeriesInfo().entrySet()) {
+                String seriesName = seriesEntry.getKey();
+                SeriesData seriesData = seriesEntry.getValue();
+                addKeyData(result, groupName, seriesName, seriesData, false);
+                if (aggregatedKeysSeries == true) {
+                    addKeyData(result, groupName, seriesName, seriesData, true);
+                }
+            }
+
+            // Add overall values if needed
+            if (overallSeries == true) {
+                SeriesData overallData = groupData.getOverallSeries();
+                String overallSeriesName = String.format(overallSeriesFormat,
+                        groupName);
+                addKeyData(result, groupName, overallSeriesName, overallData,
+                        false);
+                if (aggregatedKeysSeries == true) {
+                    addKeyData(result, groupName, overallSeriesName,
+                            overallData, true);
+                }
+            }
+        }
+
+        // Store the result
+        setDataToContext(getName(), result);
+
+        for (GroupInfo groupInfo : groupInfos.values()) {
+            groupInfo.getGroupData().clear();
+        }
     }
 
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractOverTimeGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractOverTimeGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractOverTimeGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractOverTimeGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -41,7 +41,7 @@ public abstract class AbstractOverTimeGr
      * @return the granularity
      */
     public long getGranularity() {
-	return granularity;
+        return granularity;
     }
 
     /**
@@ -51,15 +51,15 @@ public abstract class AbstractOverTimeGr
      *            the granularity to set
      */
     public void setGranularity(long granularity) {
-	this.granularity = granularity;
-	((TimeStampKeysSelector) getKeysSelector()).setGranularity(granularity);
+        this.granularity = granularity;
+        ((TimeStampKeysSelector) getKeysSelector()).setGranularity(granularity);
     }
 
     /**
      * Instantiates a new abstract over time graph consumer.
      */
     protected AbstractOverTimeGraphConsumer() {
-	setGranularity(1L);
+        setGranularity(1L);
     }
 
     /**
@@ -77,9 +77,9 @@ public abstract class AbstractOverTimeGr
      */
     @Override
     protected final GraphKeysSelector createKeysSelector() {
-	TimeStampKeysSelector keysSelector = createTimeStampKeysSelector();
-	keysSelector.setGranularity(granularity);
-	return keysSelector;
+        TimeStampKeysSelector keysSelector = createTimeStampKeysSelector();
+        keysSelector.setGranularity(granularity);
+        return keysSelector;
     }
 
     /*
@@ -90,8 +90,8 @@ public abstract class AbstractOverTimeGr
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	// TODO Auto-generated method stub
-	return null;
+        // TODO Auto-generated method stub
+        return null;
     }
 
     /*
@@ -102,7 +102,7 @@ public abstract class AbstractOverTimeGr
      */
     @Override
     protected void initializeExtraResults(MapResultData parentResult) {
-	parentResult.setResult(RESULT_CTX_GRANULARITY, new ValueResultData(
-	        granularity));
+        parentResult.setResult(RESULT_CTX_GRANULARITY, new ValueResultData(
+                granularity));
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractSeriesSelector.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractSeriesSelector.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractSeriesSelector.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractSeriesSelector.java Thu Dec 10 18:55:22 2015
@@ -31,7 +31,7 @@ public abstract class AbstractSeriesSele
      * Instantiates a new abstract series selector.
      */
     protected AbstractSeriesSelector() {
-	this(false);
+        this(false);
     }
 
     /**
@@ -42,7 +42,7 @@ public abstract class AbstractSeriesSele
      *            controllers
      */
     protected AbstractSeriesSelector(boolean allowsControllerDiscrimination) {
-	this.allowsControllerDiscrimination = allowsControllerDiscrimination;
+        this.allowsControllerDiscrimination = allowsControllerDiscrimination;
     }
 
     /*
@@ -53,7 +53,7 @@ public abstract class AbstractSeriesSele
      */
     @Override
     public final boolean allowsControllersDiscrimination() {
-	return allowsControllerDiscrimination;
+        return allowsControllerDiscrimination;
     }
 
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractVersusRequestsGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractVersusRequestsGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractVersusRequestsGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/AbstractVersusRequestsGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -61,7 +61,7 @@ public abstract class AbstractVersusRequ
      * @return the granularity
      */
     public long getGranularity() {
-	return granularity;
+        return granularity;
     }
 
     /**
@@ -71,15 +71,15 @@ public abstract class AbstractVersusRequ
      *            the granularity to set
      */
     public void setGranularity(long granularity) {
-	this.granularity = granularity;
+        this.granularity = granularity;
     }
 
     /**
      * Instantiates a new abstract over time graph consumer.
      */
     protected AbstractVersusRequestsGraphConsumer() {
-	embeddedConsumer = new TimeCountConsumer(this);
-	setGranularity(1L);
+        embeddedConsumer = new TimeCountConsumer(this);
+        setGranularity(1L);
     }
 
     /*
@@ -91,11 +91,11 @@ public abstract class AbstractVersusRequ
      */
     @Override
     public void startConsuming() {
-	embeddedConsumer.startConsuming();
+        embeddedConsumer.startConsuming();
     }
 
     private void startConsumingBase() {
-	super.startConsuming();
+        super.startConsuming();
     }
 
     /*
@@ -107,12 +107,12 @@ public abstract class AbstractVersusRequ
      */
     @Override
     public void setConsumedMetadata(SampleMetadata sampleMetadata, int channel) {
-	embeddedConsumer.setConsumedMetadata(sampleMetadata, channel);
+        embeddedConsumer.setConsumedMetadata(sampleMetadata, channel);
     }
 
     private void setConsumedMetadataBase(SampleMetadata sampleMetadata,
-	    int channel) {
-	super.setConsumedMetadata(sampleMetadata, channel);
+            int channel) {
+        super.setConsumedMetadata(sampleMetadata, channel);
     }
 
     /*
@@ -124,11 +124,11 @@ public abstract class AbstractVersusRequ
      */
     @Override
     public void consume(Sample sample, int channel) {
-	embeddedConsumer.consume(sample, channel);
+        embeddedConsumer.consume(sample, channel);
     }
 
     private void consumeBase(Sample sample, int channel) {
-	super.consume(sample, channel);
+        super.consume(sample, channel);
     }
 
     /*
@@ -140,11 +140,11 @@ public abstract class AbstractVersusRequ
      */
     @Override
     public void stopConsuming() {
-	embeddedConsumer.stopConsuming();
+        embeddedConsumer.stopConsuming();
     }
 
     public void stopConsumingBase() {
-	super.stopConsuming();
+        super.stopConsuming();
     }
 
     /*
@@ -155,211 +155,211 @@ public abstract class AbstractVersusRequ
      */
     @Override
     protected void initializeExtraResults(MapResultData parentResult) {
-	parentResult.setResult(RESULT_CTX_GRANULARITY, new ValueResultData(
-	        granularity));
+        parentResult.setResult(RESULT_CTX_GRANULARITY, new ValueResultData(
+                granularity));
     }
 
     private static class TimeCountConsumer extends AbstractSampleConsumer {
 
-	private static final Logger log = LoggingManager.getLoggerForClass();
+        private static final Logger log = LoggingManager.getLoggerForClass();
 
-	private class FileInfo {
-	    private final File file;
-	    private final CsvSampleWriter writer;
-
-	    /**
-	     * Instantiates a new file info.
-	     *
-	     * @param file
-	     *            the file
-	     * @param metadata
-	     *            the metadata
-	     */
-	    public FileInfo(File file, SampleMetadata metadata) {
-		this.file = file;
-		this.writer = new CsvSampleWriter(file, metadata);
-	    }
-
-	    /**
-	     * Gets the file.
-	     *
-	     * @return the file
-	     */
-	    public File getFile() {
-		return file;
-	    }
-
-	    /**
-	     * Gets the sample writer.
-	     *
-	     * @return the sample writer
-	     */
-	    public CsvSampleWriter getWriter() {
-		return writer;
-	    }
-	}
-
-	// Collection of sample builders for channels
-	private ArrayList<SampleBuilder> builders = new ArrayList<>();
-	private ArrayList<FileInfo> fileInfos = new ArrayList<>();
-	private HashMap<Long, Long> counts = new HashMap<>();
-	boolean createdWorkDir = false;
-	private final AbstractVersusRequestsGraphConsumer parent;
-
-	public TimeCountConsumer(AbstractVersusRequestsGraphConsumer parent) {
-	    this.parent = parent;
-	}
-
-	private long getTimeInterval(Sample sample) {
-	    long time = sample.getEndTime();
-	    return time - (time % parent.getGranularity());
-	}
-
-	// Adds a new field in the sample metadata for each channel
-	private void initProducedMetadata() {
-	    builders.clear();
-	    int channelCount = getConsumedChannelCount();
-	    for (int i = 0; i < channelCount; i++) {
-		// Get the metadata for the current channel
-		SampleMetadata consumedMetadata = getConsumedMetadata(i);
-
-		// Copy metadata to an array
-		int colCount = consumedMetadata.getColumnCount();
-		String[] names = new String[colCount + 1];
-		for (int j = 0; j < colCount; j++) {
-		    names[j] = consumedMetadata.getColumnName(j);
-		}
-
-		// Add the new field
-		names[colCount] = TIME_INTERVAL_LABEL;
-
-		// Build the produced metadata from the array
-		SampleMetadata producedMetadata = new SampleMetadata(
-		        consumedMetadata.getSeparator(), names);
-
-		// Add a sample builder for the current channel
-		builders.add(new SampleBuilder(producedMetadata));
-		parent.setConsumedMetadataBase(producedMetadata, i);
-	    }
-	}
-
-	private Sample createIndexedSample(Sample sample, int channel,
-	        double count) {
-	    SampleBuilder builder = builders.get(channel);
-	    SampleMetadata metadata = builder.getMetadata();
-	    int colCount = metadata.getColumnCount();
-	    for (int i = 0; i < colCount - 1; i++) {
-		builder.add(sample.getString(i));
-	    }
-	    builder.add(String.valueOf(count));
-	    return builder.build();
-	}
-
-	@Override
-	public void startConsuming() {
-
-	    // Handle the working directory
-	    File workDir = parent.getWorkingDirectory();
-	    createdWorkDir = false;
-	    if (workDir.exists() == false) {
-		createdWorkDir = workDir.mkdir();
-		if (createdWorkDir == false) {
-		    String message = String.format(
-			    "Cannot create create working directory \"%s\"",
-			    workDir);
-		    log.error(message);
-		    throw new SampleException(message);
-		}
-	    }
-
-	    // Create a temporary file by channel to buffer samples
-	    int channelsCount = getConsumedChannelCount();
-	    for (int i = 0; i < channelsCount; i++) {
-		try {
-		    File tmpFile = File.createTempFile(parent.getName(), "-"
-			    + String.valueOf(i), workDir);
-		    tmpFile.deleteOnExit();
-		    fileInfos
-			    .add(new FileInfo(tmpFile, getConsumedMetadata(i)));
-		} catch (IOException ex) {
-		    String message = String.format(
-			    "Cannot create temporary file for channel #%d", i);
-		    log.error(message, ex);
-		    throw new SampleException(message, ex);
-		}
-	    }
-
-	    // Override produced metadata
-	    initProducedMetadata();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.apache.jmeter.report.processor.SampleConsumer#consume(org.apache.
-	 * jmeter.report.core.Sample, int)
-	 */
-	@Override
-	public void consume(Sample sample, int channel) {
-	    // Count sample depending on time interval
-	    long time = getTimeInterval(sample);
-	    Long count = counts.get(time);
-	    if (count != null) {
-		counts.put(time, count + 1);
-	    } else {
-		counts.put(time, 1L);
-	    }
-	    fileInfos.get(channel).getWriter().write(sample);
-	}
-
-	@Override
-	public void stopConsuming() {
-
-	    // Ask parent to start consumption
-	    parent.startConsumingBase();
-
-	    // Propagate tagged samples to parent
-	    int channelsCount = getConsumedChannelCount();
-	    for (int i = 0; i < channelsCount; i++) {
-		FileInfo fileInfo = fileInfos.get(i);
-
-		// Clean the writer
-		CsvSampleWriter writer = fileInfo.getWriter();
-		writer.close();
-
-		// Create a reader and use it to get the buffered samples
-		File file = fileInfo.getFile();
-		CsvSampleReader reader = new CsvSampleReader(file,
-		        getConsumedMetadata(i));
-		try {
-		    while (reader.hasNext()) {
-			Sample sample = reader.readSample();
-			// Ask parent to consume the altered sample
-			parent.consumeBase(
-			        createIndexedSample(sample, i,
-			                counts.get(getTimeInterval(sample))
-			                        % parent.getGranularity()), i);
-		    }
-		} finally {
-		    reader.close();
-		    file.delete();
-		}
-	    }
-
-	    if (createdWorkDir == true) {
-		File workingDir = parent.getWorkingDirectory();
-		try {
-		    FileUtils.deleteDirectory(workingDir);
-		} catch (IOException e) {
-		    log.warn(String.format(
-			    "Cannot delete created temporary directory \"%s\"",
-			    workingDir), e);
-		}
-	    }
-
-	    // Ask parent to stop consumption
-	    parent.stopConsumingBase();
-	}
+        private class FileInfo {
+            private final File file;
+            private final CsvSampleWriter writer;
+
+            /**
+             * Instantiates a new file info.
+             *
+             * @param file
+             *            the file
+             * @param metadata
+             *            the metadata
+             */
+            public FileInfo(File file, SampleMetadata metadata) {
+                this.file = file;
+                this.writer = new CsvSampleWriter(file, metadata);
+            }
+
+            /**
+             * Gets the file.
+             *
+             * @return the file
+             */
+            public File getFile() {
+                return file;
+            }
+
+            /**
+             * Gets the sample writer.
+             *
+             * @return the sample writer
+             */
+            public CsvSampleWriter getWriter() {
+                return writer;
+            }
+        }
+
+        // Collection of sample builders for channels
+        private ArrayList<SampleBuilder> builders = new ArrayList<>();
+        private ArrayList<FileInfo> fileInfos = new ArrayList<>();
+        private HashMap<Long, Long> counts = new HashMap<>();
+        boolean createdWorkDir = false;
+        private final AbstractVersusRequestsGraphConsumer parent;
+
+        public TimeCountConsumer(AbstractVersusRequestsGraphConsumer parent) {
+            this.parent = parent;
+        }
+
+        private long getTimeInterval(Sample sample) {
+            long time = sample.getEndTime();
+            return time - (time % parent.getGranularity());
+        }
+
+        // Adds a new field in the sample metadata for each channel
+        private void initProducedMetadata() {
+            builders.clear();
+            int channelCount = getConsumedChannelCount();
+            for (int i = 0; i < channelCount; i++) {
+                // Get the metadata for the current channel
+                SampleMetadata consumedMetadata = getConsumedMetadata(i);
+
+                // Copy metadata to an array
+                int colCount = consumedMetadata.getColumnCount();
+                String[] names = new String[colCount + 1];
+                for (int j = 0; j < colCount; j++) {
+                    names[j] = consumedMetadata.getColumnName(j);
+                }
+
+                // Add the new field
+                names[colCount] = TIME_INTERVAL_LABEL;
+
+                // Build the produced metadata from the array
+                SampleMetadata producedMetadata = new SampleMetadata(
+                        consumedMetadata.getSeparator(), names);
+
+                // Add a sample builder for the current channel
+                builders.add(new SampleBuilder(producedMetadata));
+                parent.setConsumedMetadataBase(producedMetadata, i);
+            }
+        }
+
+        private Sample createIndexedSample(Sample sample, int channel,
+                double count) {
+            SampleBuilder builder = builders.get(channel);
+            SampleMetadata metadata = builder.getMetadata();
+            int colCount = metadata.getColumnCount();
+            for (int i = 0; i < colCount - 1; i++) {
+                builder.add(sample.getString(i));
+            }
+            builder.add(String.valueOf(count));
+            return builder.build();
+        }
+
+        @Override
+        public void startConsuming() {
+
+            // Handle the working directory
+            File workDir = parent.getWorkingDirectory();
+            createdWorkDir = false;
+            if (workDir.exists() == false) {
+                createdWorkDir = workDir.mkdir();
+                if (createdWorkDir == false) {
+                    String message = String.format(
+                            "Cannot create create working directory \"%s\"",
+                            workDir);
+                    log.error(message);
+                    throw new SampleException(message);
+                }
+            }
+
+            // Create a temporary file by channel to buffer samples
+            int channelsCount = getConsumedChannelCount();
+            for (int i = 0; i < channelsCount; i++) {
+                try {
+                    File tmpFile = File.createTempFile(parent.getName(), "-"
+                            + String.valueOf(i), workDir);
+                    tmpFile.deleteOnExit();
+                    fileInfos
+                            .add(new FileInfo(tmpFile, getConsumedMetadata(i)));
+                } catch (IOException ex) {
+                    String message = String.format(
+                            "Cannot create temporary file for channel #%d", i);
+                    log.error(message, ex);
+                    throw new SampleException(message, ex);
+                }
+            }
+
+            // Override produced metadata
+            initProducedMetadata();
+        }
+
+        /*
+         * (non-Javadoc)
+         * 
+         * @see
+         * org.apache.jmeter.report.processor.SampleConsumer#consume(org.apache.
+         * jmeter.report.core.Sample, int)
+         */
+        @Override
+        public void consume(Sample sample, int channel) {
+            // Count sample depending on time interval
+            long time = getTimeInterval(sample);
+            Long count = counts.get(time);
+            if (count != null) {
+                counts.put(time, count + 1);
+            } else {
+                counts.put(time, 1L);
+            }
+            fileInfos.get(channel).getWriter().write(sample);
+        }
+
+        @Override
+        public void stopConsuming() {
+
+            // Ask parent to start consumption
+            parent.startConsumingBase();
+
+            // Propagate tagged samples to parent
+            int channelsCount = getConsumedChannelCount();
+            for (int i = 0; i < channelsCount; i++) {
+                FileInfo fileInfo = fileInfos.get(i);
+
+                // Clean the writer
+                CsvSampleWriter writer = fileInfo.getWriter();
+                writer.close();
+
+                // Create a reader and use it to get the buffered samples
+                File file = fileInfo.getFile();
+                CsvSampleReader reader = new CsvSampleReader(file,
+                        getConsumedMetadata(i));
+                try {
+                    while (reader.hasNext()) {
+                        Sample sample = reader.readSample();
+                        // Ask parent to consume the altered sample
+                        parent.consumeBase(
+                                createIndexedSample(sample, i,
+                                        counts.get(getTimeInterval(sample))
+                                                % parent.getGranularity()), i);
+                    }
+                } finally {
+                    reader.close();
+                    file.delete();
+                }
+            }
+
+            if (createdWorkDir == true) {
+                File workingDir = parent.getWorkingDirectory();
+                try {
+                    FileUtils.deleteDirectory(workingDir);
+                } catch (IOException e) {
+                    log.warn(String.format(
+                            "Cannot delete created temporary directory \"%s\"",
+                            workingDir), e);
+                }
+            }
+
+            // Ask parent to stop consumption
+            parent.stopConsumingBase();
+        }
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/CodeSeriesSelector.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/CodeSeriesSelector.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/CodeSeriesSelector.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/CodeSeriesSelector.java Thu Dec 10 18:55:22 2015
@@ -38,7 +38,7 @@ public class CodeSeriesSelector extends
      */
     @Override
     public Iterable<String> select(Sample sample) {
-	return Arrays.asList(sample.getResponseCode());
+        return Arrays.asList(sample.getResponseCode());
     }
 
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/CountValueSelector.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/CountValueSelector.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/CountValueSelector.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/CountValueSelector.java Thu Dec 10 18:55:22 2015
@@ -35,7 +35,7 @@ public class CountValueSelector implemen
      */
     @Override
     public double select(String series, Sample sample) {
-	return 1;
+        return 1;
     }
 
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/ElapsedTimeValueSelector.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/ElapsedTimeValueSelector.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/ElapsedTimeValueSelector.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/ElapsedTimeValueSelector.java Thu Dec 10 18:55:22 2015
@@ -36,7 +36,7 @@ public class ElapsedTimeValueSelector im
      */
     @Override
     public double select(String series, Sample sample) {
-	return sample.getElapsedTime();
+        return sample.getElapsedTime();
     }
 
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/GroupData.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/GroupData.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/GroupData.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/GroupData.java Thu Dec 10 18:55:22 2015
@@ -34,7 +34,7 @@ public class GroupData {
      * @return the series data map
      */
     public final HashMap<String, SeriesData> getSeriesInfo() {
-	return seriesData;
+        return seriesData;
     }
 
     /**
@@ -43,7 +43,7 @@ public class GroupData {
      * @return the overall series data
      */
     public final SeriesData getOverallSeries() {
-	return overallSeries;
+        return overallSeries;
     }
 
     /**
@@ -57,15 +57,15 @@ public class GroupData {
      *            the status defining if the group aggregates keys
      */
     public GroupData(AggregatorFactory factory, boolean hasOverall,
-	    boolean hasAggregatedKey) {
-	overallSeries = hasOverall ? new SeriesData(factory, hasAggregatedKey,
-	        false, true) : null;
+            boolean hasAggregatedKey) {
+        overallSeries = hasOverall ? new SeriesData(factory, hasAggregatedKey,
+                false, true) : null;
     }
 
     public void clear() {
-	seriesData.clear();
-	if (overallSeries != null) {
-	    overallSeries.clear();
-	}
+        seriesData.clear();
+        if (overallSeries != null) {
+            overallSeries.clear();
+        }
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/GroupInfo.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/GroupInfo.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/GroupInfo.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/GroupInfo.java Thu Dec 10 18:55:22 2015
@@ -38,7 +38,7 @@ public class GroupInfo {
      * @return the enableAggregatedKeysSeries
      */
     public final boolean enablesAggregatedKeysSeries() {
-	return enableAggregatedKeysSeries;
+        return enableAggregatedKeysSeries;
     }
 
     /**
@@ -47,7 +47,7 @@ public class GroupInfo {
      * @return the enableOverallSeries
      */
     public final boolean enablesOverallSeries() {
-	return enableOverallSeries;
+        return enableOverallSeries;
     }
 
     /**
@@ -56,7 +56,7 @@ public class GroupInfo {
      * @return the seriesData selector
      */
     public final GraphSeriesSelector getSeriesSelector() {
-	return seriesSelector;
+        return seriesSelector;
     }
 
     /**
@@ -65,7 +65,7 @@ public class GroupInfo {
      * @return the value selector
      */
     public final GraphValueSelector getValueSelector() {
-	return valueSelector;
+        return valueSelector;
     }
 
     /**
@@ -74,7 +74,7 @@ public class GroupInfo {
      * @return the aggregatorFactory
      */
     public final AggregatorFactory getAggregatorFactory() {
-	return aggregatorFactory;
+        return aggregatorFactory;
     }
 
     /**
@@ -83,7 +83,7 @@ public class GroupInfo {
      * @return the group data
      */
     public final GroupData getGroupData() {
-	return groupData;
+        return groupData;
     }
 
     /**
@@ -101,15 +101,15 @@ public class GroupInfo {
      *            the enable aggregated keys series
      */
     public GroupInfo(AggregatorFactory aggregatorFactory,
-	    GraphSeriesSelector seriesSelector,
-	    GraphValueSelector valueSelector, boolean enableOverallSeries,
-	    boolean enableAggregatedKeysSeries) {
-	this.enableOverallSeries = enableOverallSeries;
-	this.seriesSelector = seriesSelector;
-	this.valueSelector = valueSelector;
-	this.aggregatorFactory = aggregatorFactory;
-	this.enableAggregatedKeysSeries = enableAggregatedKeysSeries;
-	this.groupData = new GroupData(aggregatorFactory, enableOverallSeries,
-	        enableAggregatedKeysSeries);
+            GraphSeriesSelector seriesSelector,
+            GraphValueSelector valueSelector, boolean enableOverallSeries,
+            boolean enableAggregatedKeysSeries) {
+        this.enableOverallSeries = enableOverallSeries;
+        this.seriesSelector = seriesSelector;
+        this.valueSelector = valueSelector;
+        this.aggregatorFactory = aggregatorFactory;
+        this.enableAggregatedKeysSeries = enableAggregatedKeysSeries;
+        this.groupData = new GroupData(aggregatorFactory, enableOverallSeries,
+                enableAggregatedKeysSeries);
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/IndexedNameSelector.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/IndexedNameSelector.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/IndexedNameSelector.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/IndexedNameSelector.java Thu Dec 10 18:55:22 2015
@@ -40,7 +40,7 @@ public class IndexedNameSelector impleme
      * @return the names
      */
     public final List<String> getNames() {
-	return names;
+        return names;
     }
 
     /*
@@ -52,13 +52,13 @@ public class IndexedNameSelector impleme
      */
     @Override
     public Double select(Sample sample) {
-	String name = sample.getName();
-	int index = names.indexOf(name);
-	if (index < 0) {
-	    names.addLast(name);
-	    index = names.size() - 1;
-	}
-	return (double) index;
+        String name = sample.getName();
+        int index = names.indexOf(name);
+        if (index < 0) {
+            names.addLast(name);
+            index = names.size() - 1;
+        }
+        return (double) index;
     }
 
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/LatencyValueSelector.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/LatencyValueSelector.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/LatencyValueSelector.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/LatencyValueSelector.java Thu Dec 10 18:55:22 2015
@@ -36,7 +36,7 @@ public class LatencyValueSelector implem
      */
     @Override
     public double select(String series, Sample sample) {
-	return sample.getLatency();
+        return sample.getLatency();
     }
 
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/NameSeriesSelector.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/NameSeriesSelector.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/NameSeriesSelector.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/NameSeriesSelector.java Thu Dec 10 18:55:22 2015
@@ -32,7 +32,7 @@ public class NameSeriesSelector extends
      * Instantiates a new name series selector.
      */
     public NameSeriesSelector() {
-	super(true);
+        super(true);
     }
     
     /*
@@ -44,7 +44,7 @@ public class NameSeriesSelector extends
      */
     @Override
     public Iterable<String> select(Sample sample) {
-	return Arrays.asList(sample.getName());
+        return Arrays.asList(sample.getName());
     }
 
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -47,9 +47,9 @@ public class ActiveThreadsGraphConsumer
      */
     @Override
     protected TimeStampKeysSelector createTimeStampKeysSelector() {
-	TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
-	keysSelector.setSelectBeginTime(false);
-	return keysSelector;
+        TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
+        keysSelector.setSelectBeginTime(false);
+        return keysSelector;
     }
 
     /*
@@ -60,27 +60,27 @@ public class ActiveThreadsGraphConsumer
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
-	groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
-	        new MeanAggregatorFactory(), new AbstractSeriesSelector() {
+        HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
+        groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
+                new MeanAggregatorFactory(), new AbstractSeriesSelector() {
 
-		    @Override
-		    public Iterable<String> select(Sample sample) {
-		        String threadName = sample.getThreadName();
-		        int index = threadName.lastIndexOf(" ");
-		        if (index >= 0) {
-			    threadName = threadName.substring(0, index);
-		        }
-		        return Arrays.asList(new String[] { threadName });
-		    }
-	        }, new GraphValueSelector() {
+                    @Override
+                    public Iterable<String> select(Sample sample) {
+                        String threadName = sample.getThreadName();
+                        int index = threadName.lastIndexOf(" ");
+                        if (index >= 0) {
+                            threadName = threadName.substring(0, index);
+                        }
+                        return Arrays.asList(new String[] { threadName });
+                    }
+                }, new GraphValueSelector() {
 
-		    @Override
-		    public double select(String series, Sample sample) {
-		        return sample.getGroupThreads();
-		    }
-	        }, false, false));
-	return groupInfos;
+                    @Override
+                    public double select(String series, Sample sample) {
+                        return sample.getGroupThreads();
+                    }
+                }, false, false));
+        return groupInfos;
     }
 
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/BytesThroughputGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/BytesThroughputGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/BytesThroughputGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/BytesThroughputGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -50,9 +50,9 @@ public class BytesThroughputGraphConsume
      */
     @Override
     protected TimeStampKeysSelector createTimeStampKeysSelector() {
-	TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
-	keysSelector.setSelectBeginTime(false);
-	return keysSelector;
+        TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
+        keysSelector.setSelectBeginTime(false);
+        return keysSelector;
     }
 
     /*
@@ -63,27 +63,27 @@ public class BytesThroughputGraphConsume
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	HashMap<String, GroupInfo> groupInfos = new HashMap<>(2);
-	groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
-	        new TimeRateAggregatorFactory(), new AbstractSeriesSelector() {
-		    private final Iterable<String> values = Arrays.asList(
-		            RECEIVED_BYTES_SERIES_LABEL,
-		            SENT_BYTES_SERIES_LABEL);
+        HashMap<String, GroupInfo> groupInfos = new HashMap<>(2);
+        groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
+                new TimeRateAggregatorFactory(), new AbstractSeriesSelector() {
+                    private final Iterable<String> values = Arrays.asList(
+                            RECEIVED_BYTES_SERIES_LABEL,
+                            SENT_BYTES_SERIES_LABEL);
 
-		    @Override
-		    public Iterable<String> select(Sample sample) {
-		        return values;
-		    }
-	        }, new GraphValueSelector() {
+                    @Override
+                    public Iterable<String> select(Sample sample) {
+                        return values;
+                    }
+                }, new GraphValueSelector() {
 
-		    @Override
-		    public double select(String series, Sample sample) {
-		        // TODO Add Received bytes support
-		        return (series == SENT_BYTES_SERIES_LABEL) ? sample
-		                .getSentBytes() : 0;
-		    }
-	        }, false, false));
-	return groupInfos;
+                    @Override
+                    public double select(String series, Sample sample) {
+                        // TODO Add Received bytes support
+                        return (series == SENT_BYTES_SERIES_LABEL) ? sample
+                                .getSentBytes() : 0;
+                    }
+                }, false, false));
+        return groupInfos;
     }
 
     /*
@@ -95,10 +95,10 @@ public class BytesThroughputGraphConsume
      */
     @Override
     public void setGranularity(long granularity) {
-	super.setGranularity(granularity);
-	// Override the granularity of the aggregators factory
-	((TimeRateAggregatorFactory) getGroupInfos().get(
-	        AbstractGraphConsumer.DEFAULT_GROUP).getAggregatorFactory())
-	        .setGranularity(granularity);
+        super.setGranularity(granularity);
+        // Override the granularity of the aggregators factory
+        ((TimeRateAggregatorFactory) getGroupInfos().get(
+                AbstractGraphConsumer.DEFAULT_GROUP).getAggregatorFactory())
+                .setGranularity(granularity);
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/CodesPerSecondGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/CodesPerSecondGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/CodesPerSecondGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/CodesPerSecondGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -45,9 +45,9 @@ public class CodesPerSecondGraphConsumer
      */
     @Override
     protected TimeStampKeysSelector createTimeStampKeysSelector() {
-	TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
-	keysSelector.setSelectBeginTime(false);
-	return keysSelector;
+        TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
+        keysSelector.setSelectBeginTime(false);
+        return keysSelector;
     }
 
     /*
@@ -58,11 +58,11 @@ public class CodesPerSecondGraphConsumer
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
-	groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
-	        new TimeRateAggregatorFactory(), new CodeSeriesSelector(),
-	        new CountValueSelector(), false, false));
-	return groupInfos;
+        HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
+        groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
+                new TimeRateAggregatorFactory(), new CodeSeriesSelector(),
+                new CountValueSelector(), false, false));
+        return groupInfos;
     }
 
     /*
@@ -74,10 +74,10 @@ public class CodesPerSecondGraphConsumer
      */
     @Override
     public void setGranularity(long granularity) {
-	super.setGranularity(granularity);
-	// Override the granularity of the aggregators factory
-	((TimeRateAggregatorFactory) getGroupInfos().get(
-	        AbstractGraphConsumer.DEFAULT_GROUP).getAggregatorFactory())
-	        .setGranularity(granularity);
+        super.setGranularity(granularity);
+        // Override the granularity of the aggregators factory
+        ((TimeRateAggregatorFactory) getGroupInfos().get(
+                AbstractGraphConsumer.DEFAULT_GROUP).getAggregatorFactory())
+                .setGranularity(granularity);
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/HitsPerSecondGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/HitsPerSecondGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/HitsPerSecondGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/HitsPerSecondGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -45,9 +45,9 @@ public class HitsPerSecondGraphConsumer
      */
     @Override
     protected TimeStampKeysSelector createTimeStampKeysSelector() {
-	TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
-	keysSelector.setSelectBeginTime(true);
-	return keysSelector;
+        TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
+        keysSelector.setSelectBeginTime(true);
+        return keysSelector;
     }
 
     /*
@@ -58,11 +58,11 @@ public class HitsPerSecondGraphConsumer
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
-	groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
-	        new TimeRateAggregatorFactory(), new StaticSeriesSelector(),
-	        new CountValueSelector(), false, false));
-	return groupInfos;
+        HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
+        groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
+                new TimeRateAggregatorFactory(), new StaticSeriesSelector(),
+                new CountValueSelector(), false, false));
+        return groupInfos;
     }
 
     /*
@@ -74,11 +74,11 @@ public class HitsPerSecondGraphConsumer
      */
     @Override
     public void setGranularity(long granularity) {
-	super.setGranularity(granularity);
-	// Override the granularity of the aggregators factory
-	((TimeRateAggregatorFactory) getGroupInfos().get(
-	        AbstractGraphConsumer.DEFAULT_GROUP).getAggregatorFactory())
-	        .setGranularity(granularity);
+        super.setGranularity(granularity);
+        // Override the granularity of the aggregators factory
+        ((TimeRateAggregatorFactory) getGroupInfos().get(
+                AbstractGraphConsumer.DEFAULT_GROUP).getAggregatorFactory())
+                .setGranularity(granularity);
     }
 
     /*
@@ -90,10 +90,10 @@ public class HitsPerSecondGraphConsumer
      */
     @Override
     public void setName(String name) {
-	super.setName(name);
-	// Override the series name with the name of the graph
-	((StaticSeriesSelector) getGroupInfos().get(
-	        AbstractGraphConsumer.DEFAULT_GROUP).getSeriesSelector())
-	        .setSeriesName(name);
+        super.setName(name);
+        // Override the series name with the name of the graph
+        ((StaticSeriesSelector) getGroupInfos().get(
+                AbstractGraphConsumer.DEFAULT_GROUP).getSeriesSelector())
+                .setSeriesName(name);
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/LatencyOverTimeGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/LatencyOverTimeGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/LatencyOverTimeGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/LatencyOverTimeGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -45,9 +45,9 @@ public class LatencyOverTimeGraphConsume
      */
     @Override
     protected TimeStampKeysSelector createTimeStampKeysSelector() {
-	TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
-	keysSelector.setSelectBeginTime(false);
-	return keysSelector;
+        TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
+        keysSelector.setSelectBeginTime(false);
+        return keysSelector;
     }
 
     /*
@@ -58,10 +58,10 @@ public class LatencyOverTimeGraphConsume
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	HashMap<String, GroupInfo> groupInfos = new HashMap<>();
-	groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
-	        new MeanAggregatorFactory(), new NameSeriesSelector(),
-	        new LatencyValueSelector(), false, false));
-	return groupInfos;
+        HashMap<String, GroupInfo> groupInfos = new HashMap<>();
+        groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
+                new MeanAggregatorFactory(), new NameSeriesSelector(),
+                new LatencyValueSelector(), false, false));
+        return groupInfos;
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/LatencyVSRequestGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/LatencyVSRequestGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/LatencyVSRequestGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/LatencyVSRequestGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -46,14 +46,14 @@ public class LatencyVSRequestGraphConsum
      */
     @Override
     protected GraphKeysSelector createKeysSelector() {
-	return new GraphKeysSelector() {
+        return new GraphKeysSelector() {
 
-	    @Override
-	    public Double select(Sample sample) {
-		return sample
-		        .getDouble(AbstractVersusRequestsGraphConsumer.TIME_INTERVAL_LABEL);
-	    }
-	};
+            @Override
+            public Double select(Sample sample) {
+                return sample
+                        .getDouble(AbstractVersusRequestsGraphConsumer.TIME_INTERVAL_LABEL);
+            }
+        };
     }
 
     /*
@@ -64,10 +64,10 @@ public class LatencyVSRequestGraphConsum
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
-	groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
-	        new MedianAggregatorFactory(), new StatusSeriesSelector(),
-	        new LatencyValueSelector(), false, false));
-	return groupInfos;
+        HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
+        groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
+                new MedianAggregatorFactory(), new StatusSeriesSelector(),
+                new LatencyValueSelector(), false, false));
+        return groupInfos;
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeDistributionGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeDistributionGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeDistributionGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeDistributionGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -48,7 +48,7 @@ public class ResponseTimeDistributionGra
      * @return the granularity
      */
     public final long getGranularity() {
-	return granularity;
+        return granularity;
     }
 
     /**
@@ -56,7 +56,7 @@ public class ResponseTimeDistributionGra
      *            the granularity to set
      */
     public final void setGranularity(long granularity) {
-	this.granularity = granularity;
+        this.granularity = granularity;
     }
 
     /*
@@ -67,15 +67,15 @@ public class ResponseTimeDistributionGra
      */
     @Override
     protected final GraphKeysSelector createKeysSelector() {
-	return new GraphKeysSelector() {
+        return new GraphKeysSelector() {
 
-	    @Override
-	    public Double select(Sample sample) {
-		long elapsed = sample.getElapsedTime();
-		return (double) (elapsed - elapsed % granularity);
+            @Override
+            public Double select(Sample sample) {
+                long elapsed = sample.getElapsedTime();
+                return (double) (elapsed - elapsed % granularity);
 
-	    }
-	};
+            }
+        };
     }
 
     /*
@@ -86,13 +86,13 @@ public class ResponseTimeDistributionGra
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
+        HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
 
-	groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
-	        new SumAggregatorFactory(), new NameSeriesSelector(),
-	        new CountValueSelector(), false, false));
+        groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
+                new SumAggregatorFactory(), new NameSeriesSelector(),
+                new CountValueSelector(), false, false));
 
-	return groupInfos;
+        return groupInfos;
     }
 
     /*
@@ -103,9 +103,9 @@ public class ResponseTimeDistributionGra
      */
     @Override
     protected void initializeExtraResults(MapResultData parentResult) {
-	parentResult.setResult(
-	        AbstractOverTimeGraphConsumer.RESULT_CTX_GRANULARITY,
-	        new ValueResultData(granularity));
+        parentResult.setResult(
+                AbstractOverTimeGraphConsumer.RESULT_CTX_GRANULARITY,
+                new ValueResultData(granularity));
 
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeOverTimeGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeOverTimeGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeOverTimeGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeOverTimeGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -46,9 +46,9 @@ public class ResponseTimeOverTimeGraphCo
      */
     @Override
     protected TimeStampKeysSelector createTimeStampKeysSelector() {
-	TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
-	keysSelector.setSelectBeginTime(false);
-	return keysSelector;
+        TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
+        keysSelector.setSelectBeginTime(false);
+        return keysSelector;
     }
 
     /*
@@ -59,10 +59,10 @@ public class ResponseTimeOverTimeGraphCo
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
-	groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
-	        new MeanAggregatorFactory(), new NameSeriesSelector(),
-	        new ElapsedTimeValueSelector(), false, false));
-	return groupInfos;
+        HashMap<String, GroupInfo> groupInfos = new HashMap<>(1);
+        groupInfos.put(AbstractGraphConsumer.DEFAULT_GROUP, new GroupInfo(
+                new MeanAggregatorFactory(), new NameSeriesSelector(),
+                new ElapsedTimeValueSelector(), false, false));
+        return groupInfos;
     }
 }

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimePerSampleGraphConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimePerSampleGraphConsumer.java?rev=1719183&r1=1719182&r2=1719183&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimePerSampleGraphConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimePerSampleGraphConsumer.java Thu Dec 10 18:55:22 2015
@@ -46,7 +46,7 @@ public class ResponseTimePerSampleGraphC
      * Instantiates a new response time per sample graph consumer.
      */
     public ResponseTimePerSampleGraphConsumer() {
-	setRevertKeysAndValues(true);
+        setRevertKeysAndValues(true);
     }
 
     /*
@@ -57,7 +57,7 @@ public class ResponseTimePerSampleGraphC
      */
     @Override
     protected final GraphKeysSelector createKeysSelector() {
-	return new IndexedNameSelector();
+        return new IndexedNameSelector();
     }
 
     /**
@@ -71,15 +71,15 @@ public class ResponseTimePerSampleGraphC
      * @return the group info
      */
     private GroupInfo createGroupInfo(String propertyKey, int defaultValue) {
-	int property = JMeterUtils.getPropDefault(propertyKey, defaultValue);
-	PercentileAggregatorFactory factory = new PercentileAggregatorFactory();
-	factory.setPercentileIndex(property);
-	StaticSeriesSelector seriesSelector = new StaticSeriesSelector();
-	seriesSelector.setSeriesName(String.format(
-	        RESPONSE_TIME_PER_SAMPLE_SERIES_FORMAT, property));
+        int property = JMeterUtils.getPropDefault(propertyKey, defaultValue);
+        PercentileAggregatorFactory factory = new PercentileAggregatorFactory();
+        factory.setPercentileIndex(property);
+        StaticSeriesSelector seriesSelector = new StaticSeriesSelector();
+        seriesSelector.setSeriesName(String.format(
+                RESPONSE_TIME_PER_SAMPLE_SERIES_FORMAT, property));
 
-	return new GroupInfo(factory, seriesSelector,
-	        new ElapsedTimeValueSelector(), false, false);
+        return new GroupInfo(factory, seriesSelector,
+                new ElapsedTimeValueSelector(), false, false);
     }
 
     /*
@@ -90,18 +90,18 @@ public class ResponseTimePerSampleGraphC
      */
     @Override
     protected Map<String, GroupInfo> createGroupInfos() {
-	HashMap<String, GroupInfo> groupInfos = new HashMap<>(2);
+        HashMap<String, GroupInfo> groupInfos = new HashMap<>(2);
 
-	groupInfos.put("aggregate_rpt_pct1",
-	        createGroupInfo("aggregate_rpt_pct1", 90));
+        groupInfos.put("aggregate_rpt_pct1",
+                createGroupInfo("aggregate_rpt_pct1", 90));
 
-	groupInfos.put("aggregate_rpt_pct2",
-	        createGroupInfo("aggregate_rpt_pct2", 95));
+        groupInfos.put("aggregate_rpt_pct2",
+                createGroupInfo("aggregate_rpt_pct2", 95));
 
-	groupInfos.put("aggregate_rpt_pct3",
-	        createGroupInfo("aggregate_rpt_pct3", 99));
+        groupInfos.put("aggregate_rpt_pct3",
+                createGroupInfo("aggregate_rpt_pct3", 99));
 
-	return groupInfos;
+        return groupInfos;
     }
 
     /*
@@ -112,13 +112,13 @@ public class ResponseTimePerSampleGraphC
      */
     @Override
     protected void initializeExtraResults(MapResultData parentResult) {
-	ListResultData samples = new ListResultData();
-	IndexedNameSelector indexedNameSelector = (IndexedNameSelector) getKeysSelector();
-	int size = indexedNameSelector.getNames().size();
-	for (int i = 0; i < size; i++) {
-	    samples.addResult(new ValueResultData(indexedNameSelector
-		    .getNames().get(i)));
-	}
-	parentResult.setResult("sampleNames", samples);
+        ListResultData samples = new ListResultData();
+        IndexedNameSelector indexedNameSelector = (IndexedNameSelector) getKeysSelector();
+        int size = indexedNameSelector.getNames().size();
+        for (int i = 0; i < size; i++) {
+            samples.addResult(new ValueResultData(indexedNameSelector
+                    .getNames().get(i)));
+        }
+        parentResult.setResult("sampleNames", samples);
     }
 }



Mime
View raw message