Skip to content
This repository has been archived by the owner on Apr 6, 2022. It is now read-only.

Commit

Permalink
Merge pull request #23 from mmenev/JENKINS-17790
Browse files Browse the repository at this point in the history
[FIXED JENKINS-17790] Added native parser for JC reports.
  • Loading branch information
uhafner committed Jun 17, 2013
2 parents 0c0c240 + 396b631 commit d958f11
Show file tree
Hide file tree
Showing 11 changed files with 699 additions and 5 deletions.
5 changes: 5 additions & 0 deletions pom.xml
Expand Up @@ -55,6 +55,11 @@
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-digester3</artifactId>
<version>3.2</version>
</dependency>
</dependencies>

<scm>
Expand Down
Expand Up @@ -5,7 +5,6 @@
import hudson.plugins.violations.types.codenarc.CodenarcParser;
import hudson.plugins.violations.types.csslint.CssLintParser;
import hudson.plugins.violations.types.gendarme.GendarmeParser;
import hudson.plugins.violations.types.jcreport.JcReportParser;
import hudson.plugins.violations.types.pep8.Pep8Parser;
import hudson.plugins.violations.types.stylecop.StyleCopParser;

Expand Down Expand Up @@ -35,10 +34,7 @@ public static void addParsers(final List<AbstractWarningsParser> parsers) {
Messages._Warnings_Gendarme_ParserName(),
Messages._Warnings_Gendarme_LinkName(),
Messages._Warnings_Gendarme_TrendName()));
parsers.add(new ViolationsAdapter(new JcReportParser(),
Messages._Warnings_JCReport_ParserName(),
Messages._Warnings_JCReport_LinkName(),
Messages._Warnings_JCReport_TrendName()));

parsers.add(new ViolationsAdapter(new Pep8Parser(),
Messages._Warnings_Pep8_ParserName(),
Messages._Warnings_Pep8_LinkName(),
Expand Down
149 changes: 149 additions & 0 deletions src/main/java/hudson/plugins/warnings/parser/jcreportparser/File.java
@@ -0,0 +1,149 @@
package hudson.plugins.warnings.parser.jcreportparser;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
* File-Class.
* Stores field to create a warning.
* It represents the File-Tags within the report.xml.
* The Java-Bean-Conformity was chosen due to the digesters style of assigning.
* @author Johann Vierthaler, johann.vierthaler@web.de
*/
public class File {
private String name;
private String packageName;
private String srcdir;
private final transient List<Item> items = new ArrayList<Item>();

/**
* These properties are not used to create Warnings.
* It was decided to keep them
* available when Jenkins is modified and needs
* access to these fields;
*/
private String level;
private String loc;
private String classname;


/**
* Getter for the Item-Collection.
* @return unmodifiable collection of Item-Objects
*/
public List<Item> getItems() {
return Collections.unmodifiableList(items);
}

/**
* Adds an Item-Object to the collection items.
* @param item -> add this item.
*/
public void addItem(final Item item) {
items.add(item);
}


/**
* Getter for className-Field.
* @return String className.
*/
public String getClassname() {
return classname;
}

/**
* Setter for className-Field.
* @param classname -> classNamesetter
*/
public void setClassname(final String classname) {
this.classname = classname;
}

/**
* Getter for level-Field.
* @return level
*/
public String getLevel() {
return level;
}


/**
* Setter for level-Field.
* @param level -> set level
*/
public void setLevel(final String level) {
this.level = level;
}



/**
* Getter for loc-Field.
* @return loc -> loc
*/
public String getLoc() {
return loc;
}

/**
* Setter for loc-Field.
* @param loc -> locsetter
*/
public void setLoc(final String loc) {
this.loc = loc;
}


/**
* Getter for name-Field.
* @return name -> name
*/
public String getName() {
return name;
}

/**
* Setter for Name-Field.
* @param name -> name
*/
public void setName(final String name) {
this.name = name;
}


/**
* Getter for packageName-Field.
* @return packageName -> packageName.
*/
public String getPackageName() {
return packageName;
}

/**
* Setter for packageName-Field.
* @param packageName -> packageName Setter
*/
public void setPackageName(final String packageName) {
this.packageName = packageName;
}

/**
* Getter for srcdir-Field.
* @return srcdir -> srcdir.
*/
public String getSrcdir() {
return srcdir;
}

/**
* Setter for srcdir-Field.
* @param srcdir -> srcdir
*/
public void setSrcdir(final String srcdir) {
this.srcdir = srcdir;
}

}
158 changes: 158 additions & 0 deletions src/main/java/hudson/plugins/warnings/parser/jcreportparser/Item.java
@@ -0,0 +1,158 @@
package hudson.plugins.warnings.parser.jcreportparser;

/**
* This the Item-Class
* The Java-Bean-Conformity was chosen due to the digesters style of assigning.
* It represents the Item-Tags within the report.xml.
* Items have properties, that are mandatory to create a warning.
* @author Johann Vierthaler, johann.vierthaler@web.de
*/
public class Item {

private String column;
private String findingtype;
private String line;
private String message;
private String origin;
private String severity;
private String endcolumn;

/**
* Although this property is not used.
* It was decided to keep it
* available when Jenkins is modified and needs
* access to this field;
*/
private String endline;

/**
* Getter for column-Field.
* @return column -> string
*/
public String getColumn() {
return column;
}

/**
* Setter for Column-Field.
* @param column -> setter
*/
public void setColumn(final String column) {
this.column = column;
}

/**
* Getter for findingtype-Field.
* @return findingtype -> getter
*/
public String getFindingtype() {
return findingtype;
}

/**
* Setter for findingtype-Field.
* @param findingtype -> setter
*/
public void setFindingtype(final String findingtype) {
this.findingtype = findingtype;
}

/**
* Getter for line-Field.
* @return line -> getter
*/
public String getLine() {
return line;
}

/**
* Setter for line-Field.
* @param line -> setter
*/
public void setLine(final String line) {
this.line = line;
}

/**
* Getter for message-Field.
* @return message -> getter
*/
public String getMessage() {
return message;
}

/**
* Setter for message-Field.
* @param message -> setter
*/
public void setMessage(final String message) {
this.message = message;
}

/**
* Getter for origin-Field.
* @return origin -> getter
*/
public String getOrigin() {
return origin;
}

/**
* Setter for origin-Field.
* @param origin -> setter
*/
public void setOrigin(final String origin) {
this.origin = origin;
}

/**
* Getter for severity-Field.
* @return severity -> getter
*/
public String getSeverity() {
return severity;
}

/**
* Setter for severtiy-Field.
* @param severity -> setter
*/
public void setSeverity(final String severity) {
this.severity = severity;
}


/**
* Getter for endline-Field.
* @return endline -> getter
*/
public String getEndline() {
return endline;
}


/**
* Setter for endline-Field.
* @param endline -> setter
*/
public void setEndline(final String endline) {
this.endline = endline;
}

/**
* Getter for endcolumn-Field.
* @return endcolumn -> getter
*/
public String getEndcolumn() {
return endcolumn;
}

/**
* Setter for endcolumn-Field.
* @param endcolumn -> setter
*/
public void setEndcolumn(final String endcolumn) {
this.endcolumn = endcolumn;
}

}

0 comments on commit d958f11

Please sign in to comment.