Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for custom defined labels (verdict categories beside Verified & Code-Review) #393

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
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
6 changes: 2 additions & 4 deletions build-config/swe_checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<property name="severity" value="error"/>
<module name="FileLength">
<!-- TODO: Need refactoring -->
<property name="max" value="2500"/>
<property name="max" value="2550"/>
</module>
<module name="FileTabCharacter">
<property name="fileExtensions" value="java,groovy,jelly,xml,html,js,css"/>
Expand Down Expand Up @@ -43,7 +43,7 @@
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<module name="LineLength">
<property name="max" value="121"/>
<property name="max" value="144"/>
</module>
<module name="MethodLength"/>
<module name="EmptyForIteratorPad"/>
Expand Down Expand Up @@ -74,15 +74,13 @@
<module name="LeftCurly"/>
<module name="NeedBraces"/>
<module name="RightCurly"/>
<module name="AvoidInlineConditionals"/>
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="HiddenField">
<property name="ignoreSetter" value="true"/>
<property name="ignoreConstructorParameter" value="true"/>
</module>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MagicNumber"/>
<module name="MissingSwitchDefault"/>
<module name="SimplifyBooleanExpression"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -432,8 +432,8 @@ public void start() {
categories = new LinkedList<VerdictCategory>();
}
if (categories.isEmpty()) {
categories.add(new VerdictCategory("Code-Review", "Code Review"));
categories.add(new VerdictCategory("Verified", "Verified"));
categories.add(new VerdictCategory(Config.CODE_REVIEW, Config.CODE_REVIEW));
categories.add(new VerdictCategory(Config.VERIFIED, Config.VERIFIED));
}
config.setCategories(categories);
gerritEventManager = PluginImpl.getHandler_();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,12 @@
*/
package com.sonyericsson.hudson.plugins.gerrit.trigger;

import java.util.Objects;
import hudson.Extension;
import hudson.model.AbstractDescribableImpl;
import hudson.model.Descriptor;
import net.sf.json.JSONObject;
import com.sonyericsson.hudson.plugins.gerrit.trigger.config.Config;

/**
* A verdict category for setting comments in Gerrit, i.e. code-review, verify
Expand All @@ -36,15 +38,78 @@ public class VerdictCategory extends AbstractDescribableImpl<VerdictCategory> {

private String verdictValue;
private String verdictDescription;
private Integer defaultBuildStartedReportingValue;
private Integer defaultBuildSuccessfulReportingValue;
private Integer defaultBuildFailedReportingValue;
private Integer defaultBuildUnstableReportingValue;
private Integer defaultBuildNotBuiltReportingValue;

/**
* Standard constructor.
*
* @param value the value in Gerrit for the verdict category.
* @param description the text describing the verdict category.
*/
public VerdictCategory(String value, String description) {
verdictValue = value;
verdictDescription = description;
defaultBuildStartedReportingValue = 0;
defaultBuildSuccessfulReportingValue = 0;
defaultBuildFailedReportingValue = 0;
defaultBuildUnstableReportingValue = 0;
defaultBuildNotBuiltReportingValue = 0;
}

/**
* Standard constructor with custom reporting votes.
*
* @param verdictValue name of VerdictCategory.
* @param verdictDescription description of VerdictCategory.
* @param defaultBuildStartedReportingValue Default build started vote value of VerdictCategory
* @param defaultBuildSuccessfulReportingValue Default build successful vote value of VerdictCategory
* @param defaultBuildFailedReportingValue Default build failed vote value of VerdictCategory
* @param defaultBuildUnstableReportingValue Default build unstable vote value of VerdictCategory
* @param defaultBuildNotBuiltReportingValue Default build not built vote value of VerdictCategory
*/
public VerdictCategory(String verdictValue, String verdictDescription,
Integer defaultBuildStartedReportingValue,
Integer defaultBuildSuccessfulReportingValue,
Integer defaultBuildFailedReportingValue,
Integer defaultBuildUnstableReportingValue,
Integer defaultBuildNotBuiltReportingValue) {
this.verdictValue = verdictValue;
this.verdictDescription = verdictDescription;
this.defaultBuildStartedReportingValue = defaultBuildStartedReportingValue;
this.defaultBuildSuccessfulReportingValue = defaultBuildSuccessfulReportingValue;
this.defaultBuildFailedReportingValue = defaultBuildFailedReportingValue;
this.defaultBuildUnstableReportingValue = defaultBuildUnstableReportingValue;
this.defaultBuildNotBuiltReportingValue = defaultBuildNotBuiltReportingValue;
}

/**
* Creates a VerdictCategory from a JSONObject.
*
* @param obj the JSONObject.
* @param topLevelObj the outer JSONObject.
* @return a VerdictCategory.
*/
public static VerdictCategory fromJSON(JSONObject obj, JSONObject topLevelObj) {
String value = obj.getString("verdictValue");
String description = obj.getString("verdictDescription");
Integer defaultBuildStartedReportingValue = topLevelObj.containsKey(value + "Started")
? Config.getIntegerFromString(topLevelObj.getString(value + "Started")) : null;
Integer defaultBuildSuccessfulReportingValue = topLevelObj.containsKey(value + "Successful")
? Config.getIntegerFromString(topLevelObj.getString(value + "Successful")) : null;
Integer defaultBuildFailedReportingValue = topLevelObj.containsKey(value + "Failed")
? Config.getIntegerFromString(topLevelObj.getString(value + "Failed")) : null;
Integer defaultBuildUnstableReportingValue = topLevelObj.containsKey(value + "Unstable")
? Config.getIntegerFromString(topLevelObj.getString(value + "Unstable")) : null;
Integer defaultBuildNotBuiltReportingValue = topLevelObj.containsKey(value + "Not Built")
? Config.getIntegerFromString(topLevelObj.getString(value + "Not Built")) : null;

return new VerdictCategory(value, description, defaultBuildStartedReportingValue,
defaultBuildSuccessfulReportingValue, defaultBuildFailedReportingValue,
defaultBuildUnstableReportingValue, defaultBuildNotBuiltReportingValue);
}

/**
Expand All @@ -64,14 +129,118 @@ public String getVerdictDescription() {
}

/**
* Creates a VerdictCategory from a JSONObject.
* @param obj the JSONObject.
* @return a VerdictCategory.
* Standard getter for the build started reporting value.
*
* @return the description.
*/
public static VerdictCategory createVerdictCategoryFromJSON(JSONObject obj) {
String value = obj.getString("verdictValue");
String description = obj.getString("verdictDescription");
return new VerdictCategory(value, description);
public Integer getDefaultBuildStartedReportingValue() {
return defaultBuildStartedReportingValue;
}

/**
* Standard setter for the build started reporting value.
*
* @param defaultBuildStartedReportingValue the default build started reporting value
*/
public void setDefaultBuildStartedReportingValue(Integer defaultBuildStartedReportingValue) {
this.defaultBuildStartedReportingValue = defaultBuildStartedReportingValue;
}

/**
* Standard getter for the build successful reporting value.
*
* @return the description.
*/
public Integer getDefaultBuildSuccessfulReportingValue() {
return defaultBuildSuccessfulReportingValue;
}

/**
* Standard setter for the build successful reporting value.
*
* @param defaultBuildSuccessfulReportingValue the default build successful reporting value
*/
public void setDefaultBuildSuccessfulReportingValue(Integer defaultBuildSuccessfulReportingValue) {
this.defaultBuildSuccessfulReportingValue = defaultBuildSuccessfulReportingValue;
}

/**
* Standard getter for the build failed reporting value.
*
* @return the description.
*/
public Integer getDefaultBuildFailedReportingValue() {
return defaultBuildFailedReportingValue;
}

/**
* Standard setter for the build failed reporting value.
*
* @param defaultBuildFailedReportingValue the default build failed reporting value
*/
public void setDefaultBuildFailedReportingValue(Integer defaultBuildFailedReportingValue) {
this.defaultBuildFailedReportingValue = defaultBuildFailedReportingValue;
}

/**
* Standard getter for the build unstable reporting value.
*
* @return the description.
*/
public Integer getDefaultBuildUnstableReportingValue() {
return defaultBuildUnstableReportingValue;
}

/**
* Standard setter for the build unstable reporting value.
*
* @param defaultBuildUnstableReportingValue the default build unstable reporting value
*/
public void setDefaultBuildUnstableReportingValue(Integer defaultBuildUnstableReportingValue) {
this.defaultBuildUnstableReportingValue = defaultBuildUnstableReportingValue;
}

/**
* Standard getter for the build not built reporting value.
*
* @return the description.
*/
public Integer getDefaultBuildNotBuiltReportingValue() {
return defaultBuildNotBuiltReportingValue;
}

/**
* Standard setter for the build not built reporting value.
*
* @param defaultBuildNotBuiltReportingValue the default build not built reporting value
*/
public void setDefaultBuildNotBuiltReportingValue(Integer defaultBuildNotBuiltReportingValue) {
this.defaultBuildNotBuiltReportingValue = defaultBuildNotBuiltReportingValue;
}

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}

VerdictCategory category = (VerdictCategory)o;

return verdictValue != null ? verdictValue.equals(category.verdictValue) : category.verdictValue == null;
}

@Override public int hashCode() {
return Objects
.hash(verdictValue,
verdictDescription,
defaultBuildStartedReportingValue,
defaultBuildSuccessfulReportingValue,
defaultBuildFailedReportingValue,
defaultBuildUnstableReportingValue,
defaultBuildNotBuiltReportingValue);
}

/**
Expand Down
Loading