Skip to content
This repository has been archived by the owner on Nov 19, 2024. It is now read-only.

Fix the Jacoco Coverage Trend portlet #88

Merged
merged 1 commit into from
Jun 7, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions src/main/java/hudson/plugins/jacoco/portlet/JacocoLoadData.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collection;
import java.util.HashMap;
Expand All @@ -49,6 +51,11 @@
*/
public final class JacocoLoadData {

/**
* Date formatter.
*/
public static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");

/**
* Private constructor avoiding this class to be used in a non-static way.
*/
Expand All @@ -65,9 +72,9 @@ private JacocoLoadData() {
* number of days
* @return Map The sorted summaries
*/
public static Map<Calendar, JacocoCoverageResultSummary> loadChartDataWithinRange(List<Job<?,?>> jobs, int daysNumber) {
public static Map<String, JacocoCoverageResultSummary> loadChartDataWithinRange(List<Job<?,?>> jobs, int daysNumber) {

Map<Calendar, JacocoCoverageResultSummary> summaries = new HashMap<>();
Map<String, JacocoCoverageResultSummary> summaries = new HashMap<>();

// Get the last build (last date) of the all jobs
Calendar firstDate = Utils.getLastDate(jobs);
Expand Down Expand Up @@ -126,12 +133,14 @@ public static Map<Calendar, JacocoCoverageResultSummary> loadChartDataWithinRang
* @param job
* job from the DashBoard Portlet view
*/
private static void summarize(Map<Calendar, JacocoCoverageResultSummary> summaries, Run<?,?> run, Calendar runDate, Job<?,?> job) {
private static void summarize(Map<String, JacocoCoverageResultSummary> summaries, Run<?,?> run, Calendar runDate, Job<?,?> job) {

JacocoCoverageResultSummary jacocoCoverageResult = getResult(run);

String date = DATE_FORMAT.format(runDate.getTime());

// Retrieve JaCoCo information for informed date
JacocoCoverageResultSummary jacocoCoverageResultSummary = summaries.get(runDate);
JacocoCoverageResultSummary jacocoCoverageResultSummary = summaries.get(date);

// Consider the last result of each
// job date (if there are many builds for the same date). If not
Expand Down Expand Up @@ -163,7 +172,7 @@ private static void summarize(Map<Calendar, JacocoCoverageResultSummary> summari
}
}

summaries.put(runDate, jacocoCoverageResultSummary);
summaries.put(date, jacocoCoverageResultSummary);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ public Graph getSummaryGraph() {
List<Job<?,?>> jobs = (List) getDashboard().getJobs();

// Fill a HashMap with the data will be showed in the chart
Map<Calendar, JacocoCoverageResultSummary> summaries =
Map<String, JacocoCoverageResultSummary> summaries =
JacocoLoadData.loadChartDataWithinRange(jobs, daysNumber);

return createTrendChart(summaries, width, height);
Expand All @@ -134,7 +134,7 @@ public Graph getSummaryGraph() {
* the chart height
* @return Graph (JFreeChart)
*/
private static Graph createTrendChart(final Map<Calendar, JacocoCoverageResultSummary> summaries, int widthParam,
private static Graph createTrendChart(final Map<String, JacocoCoverageResultSummary> summaries, int widthParam,
int heightParam) {

return new Graph(-1, widthParam, heightParam) {
Expand Down Expand Up @@ -197,11 +197,11 @@ protected JFreeChart createGraph() {
* @return CategoryDataset Interface for a dataset with one or more
* series, and values associated with categories.
*/
private static CategoryDataset buildDataSet(Map<Calendar, JacocoCoverageResultSummary> summaries) {
private static CategoryDataset buildDataSet(Map<String, JacocoCoverageResultSummary> summaries) {

DataSetBuilder<String, Calendar> dataSetBuilder = new DataSetBuilder<>();
DataSetBuilder<String, String> dataSetBuilder = new DataSetBuilder<>();

for (Map.Entry<Calendar, JacocoCoverageResultSummary> entry : summaries.entrySet()) {
for (Map.Entry<String, JacocoCoverageResultSummary> entry : summaries.entrySet()) {
float classCoverage = 0;
float lineCoverage = 0;
float methodCoverage = 0;
Expand Down