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

upgraded CodeNarc and GMetrics #83

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ The plugin enables analysis of Groovy within SonarQube.

It leverages [CodeNarc](http://codenarc.sourceforge.net/) to raise issues against coding rules, [GMetrics](http://gmetrics.sourceforge.net/) for cyclomatic complexity and [Cobertura](http://cobertura.sourceforge.net/) or [JaCoCo](http://www.eclemma.org/jacoco/) for code coverage.

Plugin | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 1.0 | 1.1 | 1.1.1 | 1.2 | 1.3 | 1.3.1 | 1.4
---------|-----|-----|------|------|--------|------|------|------|-------|------|--------|--------|-------
CodeNarc | 0.9 | 0.9 | 0.13 | 0.15 | 0.16.1 | 0.17 | 0.20 | 0.23 | 0.23 | 0.24 | 0.24.1 | 0.24.1 | 0.25.2
GMetrics | 0.2 | 0.2 | 0.3 | 0.3 | 0.4 | 0.5 | 0.6 | 0.6 | 0.7 | 0.7 | 0.7 | 0.7 | 0.7
Plugin | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 1.0 | 1.1 | 1.1.1 | 1.2 | 1.3 | 1.3.1 | 1.4 | 1.6
---------|-----|-----|------|------|--------|------|------|------|-------|------|--------|--------|------- |-------
CodeNarc | 0.9 | 0.9 | 0.13 | 0.15 | 0.16.1 | 0.17 | 0.20 | 0.23 | 0.23 | 0.24 | 0.24.1 | 0.24.1 | 0.25.2 | 1.2.1
GMetrics | 0.2 | 0.2 | 0.3 | 0.3 | 0.4 | 0.5 | 0.6 | 0.6 | 0.7 | 0.7 | 0.7 | 0.7 | 0.7 | 1.0

## Steps to Analyze a Groovy Project
1. Install SonarQube Server
Expand Down
2 changes: 1 addition & 1 deletion groovy-jacoco-previous/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.sonarsource.groovy</groupId>
<artifactId>groovy</artifactId>
<version>1.6-RC2-SNAPSHOT</version>
<version>1.6-RC9</version>
</parent>

<artifactId>groovy-jacoco-previous</artifactId>
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

<groupId>org.sonarsource.groovy</groupId>
<artifactId>groovy</artifactId>
<version>1.6-RC2-SNAPSHOT</version>
<version>1.6-RC9</version>
<packaging>pom</packaging>

<name>Sonar Groovy</name>
Expand Down Expand Up @@ -62,7 +62,7 @@
<sonar.version>5.6</sonar.version>
<jacoco.previous.version>0.7.4.201502262128</jacoco.previous.version>
<jacoco.version>0.7.5.201505241946</jacoco.version>
<groovy.version>2.4.4</groovy.version>
<groovy.version>2.5.2</groovy.version>
<orchestrator.version>3.11</orchestrator.version>
<!-- used for deployment to SonarSource Artifactory -->
<gitRepositoryName>sonar-groovy</gitRepositoryName>
Expand Down
6 changes: 3 additions & 3 deletions sonar-groovy-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.sonarsource.groovy</groupId>
<artifactId>groovy</artifactId>
<version>1.6-RC2-SNAPSHOT</version>
<version>1.6-RC9</version>
</parent>

<artifactId>sonar-groovy-plugin</artifactId>
Expand Down Expand Up @@ -46,7 +46,7 @@
<dependency>
<groupId>org.gmetrics</groupId>
<artifactId>GMetrics</artifactId>
<version>0.7</version>
<version>1.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
Expand Down Expand Up @@ -99,7 +99,7 @@
<dependency>
<groupId>org.codenarc</groupId>
<artifactId>CodeNarc</artifactId>
<version>0.25.2</version>
<version>1.2.1</version>
<exclusions>
<exclusion>
<groupId>ant</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,14 @@
import org.codenarc.rule.Violation;
import org.codenarc.ruleset.RuleSet;
import org.codenarc.source.SourceFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.batch.fs.InputFile;

public class CodeNarcSourceAnalyzer extends AbstractSourceAnalyzer {

private static final Logger LOGGER = LoggerFactory.getLogger(CodeNarcSourceAnalyzer.class);

private final Map<InputFile, List<Violation>> violationsByFile = new HashMap<>();
private final List<InputFile> sourceFiles;

Expand All @@ -56,11 +60,16 @@ public Results analyze(RuleSet ruleSet) {
private Map<File, List<FileResults>> processFiles(RuleSet ruleSet) {
Map<File, List<FileResults>> results = new HashMap<>();
for (InputFile inputFile : sourceFiles) {
List<Violation> violations = collectViolations(new SourceFile(inputFile.file()), ruleSet);
violationsByFile.put(inputFile, violations);
FileResults result = new FileResults(inputFile.absolutePath(), violations);
results.putIfAbsent(inputFile.file().getParentFile(), new LinkedList<>());
results.get(inputFile.file().getParentFile()).add(result);
try {
List<Violation> violations = collectViolations(new SourceFile(inputFile.file()), ruleSet);
violationsByFile.put(inputFile, violations);
FileResults result = new FileResults(inputFile.absolutePath(), violations);
results.putIfAbsent(inputFile.file().getParentFile(), new LinkedList<>());
results.get(inputFile.file().getParentFile()).add(result);
} catch (Exception e) {
LOGGER.error("Exception processing file " + inputFile.relativePath(), e);
}

}
return results;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -345,3 +345,18 @@ org.codenarc.rule.unused.UnusedPrivateFieldRule;linear;5min
org.codenarc.rule.unused.UnusedPrivateMethodParameterRule;linear;5min
org.codenarc.rule.unused.UnusedPrivateMethodRule;linear;5min
org.codenarc.rule.unused.UnusedVariableRule.fixed;linear;5min
org.codenarc.rule.convention.InvertedConditionRule;linear;5min
org.codenarc.rule.convention.StaticFieldsBeforeInstanceFieldsRule;linear;5min
org.codenarc.rule.convention.FieldTypeRequiredRule;linear;5min
org.codenarc.rule.convention.StaticMethodsBeforeInstanceMethodsRule;linear;5min
org.codenarc.rule.convention.MethodParameterTypeRequired;linear;5min
org.codenarc.rule.convention.NoJavaUtilDateRule;linear;5min
org.codenarc.rule.formatting.IndentationRule;linear;5min
org.codenarc.rule.unnecessary.UnnecessarySetterRule;linear;5min
org.codenarc.rule.grails.GrailsDomainStringPropertyMaxSizeRule;linear;5min
org.codenarc.rule.convention.CouldBeSwitchStatementRule;linear;5min
org.codenarc.rule.convention.MethodReturnTypeRequiredRule;linear;5min
org.codenarc.rule.formatting.BlockEndsWithBlankLineRule;linear;5min
org.codenarc.rule.formatting.BlockStartsWithBlankLineRule;linear;5min
org.codenarc.rule.convention.VariableTypeRequiredRule;linear;5min
org.codenarc.rule.convention.PublicMethodsBeforeNonPublicMethodsRule;linear;5min
Loading