Skip to content
This repository has been archived by the owner on Jun 13, 2023. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
[JENKINS-23939] Updated AbstractFindBugsWarningsRule.evaluate(Abstrac…
…tBuild, AbstractBuild) to evaluate FindBugsMavenResultActions if no FindBugsResultActions are found for the current build.
  • Loading branch information
lewisvail3 committed Mar 1, 2016
1 parent 2323bfd commit a4b0497
Showing 1 changed file with 39 additions and 12 deletions.
Expand Up @@ -9,6 +9,7 @@
import hudson.plugins.cigame.model.AggregatableRule;
import hudson.plugins.cigame.model.RuleResult;
import hudson.plugins.cigame.util.ActionRetriever;
import hudson.plugins.findbugs.FindBugsMavenResultAction;
import hudson.plugins.findbugs.FindBugsResultAction;

public abstract class AbstractFindBugsWarningsRule implements AggregatableRule<Integer> {
Expand Down Expand Up @@ -38,6 +39,14 @@ protected int getNumberOfAnnotations(List<FindBugsResultAction> list) {
return numberOfAnnotations;
}

protected int getNumberOfMavenAnnotations(List<FindBugsMavenResultAction> list) {
int numberOfAnnotations = 0;
for (FindBugsMavenResultAction action : list) {
numberOfAnnotations += action.getResult().getNumberOfAnnotations(priority);
}
return numberOfAnnotations;
}

@Override
public final RuleResult<Integer> evaluate(AbstractBuild<?, ?> previousBuild,
AbstractBuild<?, ?> build) {
Expand All @@ -55,18 +64,36 @@ public final RuleResult<Integer> evaluate(AbstractBuild<?, ?> previousBuild,
}

List<FindBugsResultAction> currentActions = ActionRetriever.getResult(build, Result.UNSTABLE, FindBugsResultAction.class);
if (!hasNoErrors(currentActions)) {
return EMPTY_RESULT;
}
int currentAnnotations = getNumberOfAnnotations(currentActions);

List<FindBugsResultAction> previousActions = ActionRetriever.getResult(previousBuild, Result.UNSTABLE, FindBugsResultAction.class);
if (!hasNoErrors(previousActions)) {
return EMPTY_RESULT;
}
int previousAnnotations =getNumberOfAnnotations(previousActions);

return evaluate(previousAnnotations, currentAnnotations);
if (currentActions.isEmpty()) {
return evaluateMaven(previousBuild, build);
} else {
if (!hasNoErrors(currentActions)) {
return EMPTY_RESULT;
}
int currentAnnotations = getNumberOfAnnotations(currentActions);

List<FindBugsResultAction> previousActions = ActionRetriever.getResult(previousBuild, Result.UNSTABLE, FindBugsResultAction.class);
if (!hasNoErrors(previousActions)) {
return EMPTY_RESULT;
}
int previousAnnotations = getNumberOfAnnotations(previousActions);

return evaluate(previousAnnotations, currentAnnotations);
}
}

private RuleResult<Integer> evaluateMaven(AbstractBuild<?, ?> previousBuild, AbstractBuild<?, ?> build) {
List<FindBugsMavenResultAction> currentActions = ActionRetriever.getResult(build, Result.UNSTABLE,
FindBugsMavenResultAction.class);
if (currentActions.isEmpty()) {
return null;
}
int currentAnnotations = getNumberOfMavenAnnotations(currentActions);

List<FindBugsMavenResultAction> previousActions = ActionRetriever.getResult(previousBuild, Result.UNSTABLE, FindBugsMavenResultAction.class);
int previousAnnotations = getNumberOfMavenAnnotations(previousActions);

return evaluate(previousAnnotations, currentAnnotations);
}

protected abstract RuleResult<Integer> evaluate(int previousAnnotations, int currentAnnotations);
Expand Down

0 comments on commit a4b0497

Please sign in to comment.