Skip to content

Commit b4c8020

Browse files
committed
removing unnecessary changes
1 parent b474368 commit b4c8020

File tree

6 files changed

+28
-84
lines changed

6 files changed

+28
-84
lines changed

framework/codemodder-base/src/main/java/io/codemodder/CodemodCheckingAbstractModule.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

plugins/codemodder-plugin-appscan/src/main/java/io/codemodder/providers/sarif/appscan/AppScanModule.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package io.codemodder.providers.sarif.appscan;
22

3+
import com.google.inject.AbstractModule;
34
import io.codemodder.CodeChanger;
4-
import io.codemodder.Codemod;
5-
import io.codemodder.CodemodCheckingAbstractModule;
65
import io.codemodder.RuleSarif;
76
import java.lang.reflect.Constructor;
87
import java.util.List;
@@ -13,25 +12,19 @@
1312
import java.util.stream.Stream;
1413

1514
/** Responsible for distributing the SARIFS to AppScan based codemods based on rules. */
16-
public final class AppScanModule extends CodemodCheckingAbstractModule {
15+
public final class AppScanModule extends AbstractModule {
1716

1817
private final List<Class<? extends CodeChanger>> codemodTypes;
1918
private final List<RuleSarif> allAppScanRuleSarifs;
2019

2120
public AppScanModule(
2221
final List<Class<? extends CodeChanger>> codemodTypes, final List<RuleSarif> sarifs) {
23-
super(codemodTypes);
2422
this.codemodTypes = Objects.requireNonNull(codemodTypes);
2523
this.allAppScanRuleSarifs = sarifs;
2624
}
2725

2826
@Override
29-
protected boolean isResponsibleFor(final Class<? extends CodeChanger> codemod) {
30-
return codemod.getAnnotation(Codemod.class).id().startsWith("appscan:");
31-
}
32-
33-
@Override
34-
protected void doConfigure() {
27+
protected void configure() {
3528
final Map<String, RuleSarif> map =
3629
allAppScanRuleSarifs.stream()
3730
.collect(Collectors.toUnmodifiableMap(RuleSarif::getRule, rs -> rs));

plugins/codemodder-plugin-codeql/src/main/java/io/codemodder/providers/sarif/codeql/CodeQLModule.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package io.codemodder.providers.sarif.codeql;
22

3+
import com.google.inject.AbstractModule;
34
import io.codemodder.CodeChanger;
4-
import io.codemodder.Codemod;
5-
import io.codemodder.CodemodCheckingAbstractModule;
65
import io.codemodder.RuleSarif;
76
import java.lang.reflect.Constructor;
87
import java.util.List;
@@ -13,25 +12,19 @@
1312
import java.util.stream.Stream;
1413

1514
/** Responsible for distributing the SARIFS to CodeQL based codemods based on rules. */
16-
public final class CodeQLModule extends CodemodCheckingAbstractModule {
15+
public final class CodeQLModule extends AbstractModule {
1716

1817
private final List<Class<? extends CodeChanger>> codemodTypes;
1918
private final List<RuleSarif> allCodeqlRuleSarifs;
2019

2120
CodeQLModule(
2221
final List<Class<? extends CodeChanger>> codemodTypes, final List<RuleSarif> sarifs) {
23-
super(codemodTypes);
2422
this.codemodTypes = Objects.requireNonNull(codemodTypes);
2523
this.allCodeqlRuleSarifs = sarifs;
2624
}
2725

2826
@Override
29-
protected boolean isResponsibleFor(final Class<? extends CodeChanger> codemod) {
30-
return codemod.getAnnotation(Codemod.class).id().startsWith("codeql:");
31-
}
32-
33-
@Override
34-
protected void doConfigure() {
27+
protected void configure() {
3528
// What if there are multiple sarif files with a given rule?
3629
// We can safely ignore this case for now.
3730
final Map<String, RuleSarif> map =

plugins/codemodder-plugin-pmd/src/main/java/io/codemodder/providers/sarif/pmd/PmdModule.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.contrastsecurity.sarif.Result;
44
import com.contrastsecurity.sarif.SarifSchema210;
5+
import com.google.inject.AbstractModule;
56
import io.codemodder.*;
67
import io.github.classgraph.*;
78
import java.lang.reflect.Executable;
@@ -13,7 +14,7 @@
1314
import org.slf4j.LoggerFactory;
1415

1516
/** Responsible for binding PMD-related things. */
16-
public final class PmdModule extends CodemodCheckingAbstractModule {
17+
public final class PmdModule extends AbstractModule {
1718

1819
private final List<Class<? extends CodeChanger>> codemodTypes;
1920
private final Path codeDirectory;
@@ -24,22 +25,14 @@ public PmdModule(
2425
final Path codeDirectory,
2526
final List<Path> includedFiles,
2627
final List<Class<? extends CodeChanger>> codemodTypes) {
27-
super(codemodTypes);
2828
this.codemodTypes = Objects.requireNonNull(codemodTypes);
2929
this.codeDirectory = Objects.requireNonNull(codeDirectory);
3030
this.includedFiles = Objects.requireNonNull(includedFiles);
3131
this.pmdRunner = PmdRunner.createDefault();
3232
}
3333

3434
@Override
35-
protected boolean isResponsibleFor(final Class<? extends CodeChanger> codemod) {
36-
Codemod annotation = codemod.getAnnotation(Codemod.class);
37-
String id = annotation.id();
38-
return id.startsWith("semgrep:") || id.startsWith("pixee:") || id.startsWith("pmd:");
39-
}
40-
41-
@Override
42-
protected void doConfigure() {
35+
protected void configure() {
4336
Set<String> packagesScanned = new HashSet<>();
4437

4538
List<PmdScanTarget> scanTargets = new ArrayList<>();
@@ -88,6 +81,11 @@ protected void doConfigure() {
8881
}
8982
}
9083

84+
if (scanTargets.isEmpty()) {
85+
LOG.trace("No @PmdScan annotations found, skipping");
86+
return;
87+
}
88+
9189
SarifSchema210 allRulesBatchedRun =
9290
pmdRunner.run(
9391
scanTargets.stream().map(PmdScanTarget::pmdScan).map(PmdScan::ruleId).toList(),

plugins/codemodder-plugin-semgrep/src/main/java/io/codemodder/providers/sarif/semgrep/SemgrepModule.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.contrastsecurity.sarif.Result;
44
import com.contrastsecurity.sarif.SarifSchema210;
5+
import com.google.inject.AbstractModule;
56
import io.codemodder.*;
67
import io.github.classgraph.*;
78
import java.io.IOException;
@@ -17,7 +18,7 @@
1718
import org.slf4j.LoggerFactory;
1819

1920
/** Responsible for binding Semgrep-related things. */
20-
public final class SemgrepModule extends CodemodCheckingAbstractModule {
21+
public final class SemgrepModule extends AbstractModule {
2122

2223
private final List<Class<? extends CodeChanger>> codemodTypes;
2324
private final Path codeDirectory;
@@ -48,7 +49,6 @@ public SemgrepModule(
4849
final List<Class<? extends CodeChanger>> codemodTypes,
4950
final List<RuleSarif> sarifs,
5051
final SemgrepRuleFactory semgrepRuleFactory) {
51-
super(codemodTypes);
5252
this.codemodTypes = Objects.requireNonNull(codemodTypes);
5353
this.codeDirectory = Objects.requireNonNull(codeDirectory);
5454
this.includePatterns = Objects.requireNonNull(includePatterns);
@@ -59,14 +59,7 @@ public SemgrepModule(
5959
}
6060

6161
@Override
62-
protected boolean isResponsibleFor(final Class<? extends CodeChanger> codemod) {
63-
Codemod annotation = codemod.getAnnotation(Codemod.class);
64-
String id = annotation.id();
65-
return id.startsWith("semgrep:") || id.startsWith("pixee:") || id.startsWith("codemodder:");
66-
}
67-
68-
@Override
69-
protected void doConfigure() {
62+
protected void configure() {
7063

7164
// find all the @ProvidedSemgrepScan annotations and bind them as is
7265
Set<String> packagesScanned = new HashSet<>();
@@ -148,6 +141,14 @@ protected void doConfigure() {
148141
}
149142
}
150143

144+
if (rules.isEmpty()) {
145+
// no active codemods have rules to bind for, so we can return
146+
LOG.info("No active codemods have Semgrep rules to bind for JIT scanning");
147+
return;
148+
} else {
149+
LOG.info("Found {} Semgrep rules to bind for JIT scanning", rules.size());
150+
}
151+
151152
/*
152153
* To avoid running semgrep and eating heavy, redundant file I/O for every codemod, we'll run it once with all rules, calculate which rules didn't "hit", and then storing an empty result for them. This will allow us to only run Semgrep on the rules for which we have evidence will hit. Given that we don't expect most projects to hit most codemods, this is a big time-savings.
153154
*/

plugins/codemodder-plugin-sonar/src/main/java/io/codemodder/providers/sonar/SonarModule.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package io.codemodder.providers.sonar;
22

3+
import com.google.inject.AbstractModule;
34
import io.codemodder.CodeChanger;
4-
import io.codemodder.Codemod;
5-
import io.codemodder.CodemodCheckingAbstractModule;
65
import io.codemodder.sonar.model.Hotspot;
76
import io.codemodder.sonar.model.Issue;
87
import io.codemodder.sonar.model.SonarFinding;
@@ -15,7 +14,7 @@
1514
import java.util.*;
1615
import javax.inject.Inject;
1716

18-
final class SonarModule<T extends SonarFinding> extends CodemodCheckingAbstractModule {
17+
final class SonarModule<T extends SonarFinding> extends AbstractModule {
1918

2019
private final List<Class<? extends CodeChanger>> codemodTypes;
2120
private final Path repository;
@@ -28,20 +27,14 @@ final class SonarModule<T extends SonarFinding> extends CodemodCheckingAbstractM
2827
final Path repository,
2928
final List<T> findings,
3029
final Class<? extends RuleFinding<T>> ruleFindingClass) {
31-
super(codemodTypes);
3230
this.codemodTypes = Objects.requireNonNull(codemodTypes);
3331
this.repository = Objects.requireNonNull(repository);
3432
this.sonarFindings = findings;
3533
this.ruleFindingClass = ruleFindingClass;
3634
}
3735

3836
@Override
39-
protected boolean isResponsibleFor(final Class<? extends CodeChanger> codemod) {
40-
return codemod.getAnnotation(Codemod.class).id().startsWith("sonar:");
41-
}
42-
43-
@Override
44-
protected void doConfigure() {
37+
protected void configure() {
4538

4639
Map<String, List<T>> findingsByRuleMap = groupFindingsByRule(sonarFindings);
4740

0 commit comments

Comments
 (0)