Skip to content

Commit

Permalink
Internal module for sonar-api-models (#372)
Browse files Browse the repository at this point in the history
Make a common library for Sonar API objects
  • Loading branch information
carlosu7 authored Jun 11, 2024
1 parent 32727dd commit d758220
Show file tree
Hide file tree
Showing 41 changed files with 249 additions and 98 deletions.
1 change: 1 addition & 0 deletions core-codemods/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ dependencies {
implementation(project(":plugins:codemodder-plugin-pmd"))
implementation(project(":plugins:codemodder-plugin-sonar"))
implementation(project(":plugins:codemodder-plugin-defectdojo"))
implementation(project(":sonar-api-model"))
implementation(libs.java.semver)
implementation(libs.juniversalchardet)
implementation(libs.dom4j)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.Optional;
import javax.inject.Inject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.Optional;
import javax.inject.Inject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.ast.type.Type;
import io.codemodder.CodemodInvocationContext;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.List;
import java.util.Optional;
import java.util.Set;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.Optional;
import javax.inject.Inject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
import io.codemodder.Position;
import io.codemodder.RegionNodeMatcher;
import io.codemodder.SourceCodeRegion;
import io.codemodder.providers.sonar.api.Flow;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.providers.sonar.api.TextRange;
import io.codemodder.sonar.model.Flow;
import io.codemodder.sonar.model.Issue;
import io.codemodder.sonar.model.TextRange;
import java.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import javax.inject.Inject;

/** A codemod for defining a constant for a literal string that is duplicated n times. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import javax.inject.Inject;

/** A codemod for automatically removing redundant static flags on nested enums. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.Optional;
import javax.inject.Inject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.Optional;
import javax.inject.Inject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import javax.inject.Inject;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.Optional;
import javax.inject.Inject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import javax.inject.Inject;

@Codemod(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.inject.Inject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.Optional;
import javax.inject.Inject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import javax.inject.Inject;

/** Codemod to remove useless pair of parentheses */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.Optional;
import javax.inject.Inject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.List;
import java.util.Optional;
import javax.inject.Inject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import io.codemodder.providers.sonar.ProvidedSonarScan;
import io.codemodder.providers.sonar.RuleIssues;
import io.codemodder.providers.sonar.SonarPluginJavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import javax.inject.Inject;

/** A codemod for automatically replacing replaceAll() calls to replace() . */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.expr.StringLiteralExpr;
import io.codemodder.CodemodInvocationContext;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;

/**
* A class that extends DefineConstantForLiteral and specializes in using an existing constant
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ public String deleteData() {
public String createData() {
return "Data Created!";
}
}
}
1 change: 1 addition & 0 deletions plugins/codemodder-plugin-sonar/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ description = "Plugin to enable the use of Sonar in codemods"
dependencies {
compileOnly(libs.jetbrains.annotations)
implementation(project(":framework:codemodder-base"))
implementation(project(":sonar-api-model"))
testImplementation(testlibs.bundles.junit.jupiter)
testImplementation(testlibs.bundles.hamcrest)
testImplementation(testlibs.assertj)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.codemodder.providers.sonar;

import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.codemodder.providers.sonar;

import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.nio.file.Path;
import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.inject.AbstractModule;
import io.codemodder.CodeChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.providers.sonar.api.SearchIssueResponse;
import io.codemodder.sonar.model.Issue;
import io.codemodder.sonar.model.SearchIssueResponse;
import io.github.classgraph.ClassGraph;
import io.github.classgraph.ClassInfoList;
import io.github.classgraph.ScanResult;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import io.codemodder.codetf.FixedFinding;
import io.codemodder.javaparser.ChangesResult;
import io.codemodder.javaparser.JavaParserChanger;
import io.codemodder.providers.sonar.api.Issue;
import io.codemodder.sonar.model.Issue;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
Expand Down

This file was deleted.

This file was deleted.

1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,4 @@ include("plugins:codemodder-plugin-sonar")
include("plugins:codemodder-plugin-semgrep")
include("plugins:codemodder-plugin-appscan")
include("plugins:codemodder-plugin-defectdojo")
include("sonar-api-model")
11 changes: 11 additions & 0 deletions sonar-api-model/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
plugins {
id("io.codemodder.java-library")
id("io.codemodder.maven-publish")
}

dependencies {
api(libs.jackson.yaml)
api(libs.jackson.core)
}

description = "Library with API models for data from Sonar tools"
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.codemodder.providers.sonar.api;
package io.codemodder.sonar.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package io.codemodder.sonar.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.codemodder.sonar.model.update.FindingSeverity;

/** Represents a Sonar "hotspot". */
public final class Hotspot extends SonarFinding {

@JsonProperty("securityCategory")
private String securityCategory;

@JsonProperty("ruleKey")
private String ruleKey;

@JsonProperty("vulnerabilityProbability")
private FindingSeverity vulnerabilityProbability;

public FindingSeverity getVulnerabilityProbability() {
return vulnerabilityProbability;
}

public String getSecurityCategory() {
return securityCategory;
}

public String getRuleKey() {
return ruleKey;
}

@Override
public String typeName() {
return "hotspots";
}
}
19 changes: 19 additions & 0 deletions sonar-api-model/src/main/java/io/codemodder/sonar/model/Issue.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package io.codemodder.sonar.model;

import com.fasterxml.jackson.annotation.JsonProperty;

/** Represents a Sonar "issue". */
public final class Issue extends SonarFinding {

@JsonProperty("rule")
private String rule;

public String getRule() {
return rule;
}

@Override
public String typeName() {
return "issues";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package io.codemodder.sonar.model;

import com.fasterxml.jackson.annotation.JsonProperty;

class Paging {

@JsonProperty("pageIndex")
int pageIndex;

@JsonProperty("pageSize")
int pageSize;

@JsonProperty("total")
int total;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package io.codemodder.sonar.model;

import com.fasterxml.jackson.annotation.JsonProperty;

/** The response when searching for a type of Sonar issue. */
public abstract class SearchFindingResponse {

@JsonProperty("total")
private int total;

@JsonProperty("paging")
private Paging paging;

public int getTotal() {
return total;
}

public Paging getPaging() {
return paging;
}

/** Return the count of issues. */
public abstract int findingCount();
}
Loading

0 comments on commit d758220

Please sign in to comment.