Skip to content

Commit a7dc3bf

Browse files
PR feedback
1 parent f45efc5 commit a7dc3bf

File tree

4 files changed

+50
-93
lines changed

4 files changed

+50
-93
lines changed

backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/storage/repository/KnownFindingsRepository.java

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import org.sonarsource.sonarlint.core.commons.api.TextRangeWithHash;
3333
import org.sonarsource.sonarlint.core.commons.storage.SonarLintDatabase;
3434

35-
import static org.sonarsource.sonarlint.core.commons.storage.model.Tables.KNOWN_FINDING;
35+
import static org.sonarsource.sonarlint.core.commons.storage.model.Tables.KNOWN_FINDINGS;
3636

3737
public class KnownFindingsRepository {
3838

@@ -71,28 +71,28 @@ private void storeKnownFindings(String configurationScopeId, Path clientRelative
7171
var line = lineWithHash == null ? null : lineWithHash.getNumber();
7272
var lineHash = lineWithHash == null ? null : lineWithHash.getHash();
7373
var introDate = LocalDateTime.ofInstant(finding.getIntroductionDate(), ZoneId.systemDefault());
74-
trx.dsl().mergeInto(KNOWN_FINDING)
74+
trx.dsl().mergeInto(KNOWN_FINDINGS)
7575
.using(trx.dsl().selectOne())
76-
.on(KNOWN_FINDING.ID.eq(finding.getId().toString()))
76+
.on(KNOWN_FINDINGS.ID.eq(finding.getId().toString()))
7777
.whenMatchedThenUpdate()
78-
.set(KNOWN_FINDING.CONFIGURATION_SCOPE_ID, configurationScopeId)
79-
.set(KNOWN_FINDING.IDE_RELATIVE_FILE_PATH, clientRelativePath.toString())
80-
.set(KNOWN_FINDING.SERVER_KEY, finding.getServerKey())
81-
.set(KNOWN_FINDING.RULE_KEY, finding.getRuleKey())
82-
.set(KNOWN_FINDING.MESSAGE, finding.getMessage())
83-
.set(KNOWN_FINDING.INTRODUCTION_DATE, introDate)
84-
.set(KNOWN_FINDING.FINDING_TYPE, type.name())
85-
.set(KNOWN_FINDING.START_LINE, startLine)
86-
.set(KNOWN_FINDING.START_LINE_OFFSET, startLineOffset)
87-
.set(KNOWN_FINDING.END_LINE, endLine)
88-
.set(KNOWN_FINDING.END_LINE_OFFSET, endLineOffset)
89-
.set(KNOWN_FINDING.TEXT_RANGE_HASH, textRangeHash)
90-
.set(KNOWN_FINDING.LINE, line)
91-
.set(KNOWN_FINDING.LINE_HASH, lineHash)
92-
.whenNotMatchedThenInsert(KNOWN_FINDING.ID, KNOWN_FINDING.CONFIGURATION_SCOPE_ID, KNOWN_FINDING.IDE_RELATIVE_FILE_PATH, KNOWN_FINDING.SERVER_KEY, KNOWN_FINDING.RULE_KEY,
93-
KNOWN_FINDING.MESSAGE, KNOWN_FINDING.INTRODUCTION_DATE, KNOWN_FINDING.FINDING_TYPE,
94-
KNOWN_FINDING.START_LINE, KNOWN_FINDING.START_LINE_OFFSET, KNOWN_FINDING.END_LINE, KNOWN_FINDING.END_LINE_OFFSET, KNOWN_FINDING.TEXT_RANGE_HASH,
95-
KNOWN_FINDING.LINE, KNOWN_FINDING.LINE_HASH)
78+
.set(KNOWN_FINDINGS.CONFIGURATION_SCOPE_ID, configurationScopeId)
79+
.set(KNOWN_FINDINGS.IDE_RELATIVE_FILE_PATH, clientRelativePath.toString())
80+
.set(KNOWN_FINDINGS.SERVER_KEY, finding.getServerKey())
81+
.set(KNOWN_FINDINGS.RULE_KEY, finding.getRuleKey())
82+
.set(KNOWN_FINDINGS.MESSAGE, finding.getMessage())
83+
.set(KNOWN_FINDINGS.INTRODUCTION_DATE, introDate)
84+
.set(KNOWN_FINDINGS.FINDING_TYPE, type.name())
85+
.set(KNOWN_FINDINGS.START_LINE, startLine)
86+
.set(KNOWN_FINDINGS.START_LINE_OFFSET, startLineOffset)
87+
.set(KNOWN_FINDINGS.END_LINE, endLine)
88+
.set(KNOWN_FINDINGS.END_LINE_OFFSET, endLineOffset)
89+
.set(KNOWN_FINDINGS.TEXT_RANGE_HASH, textRangeHash)
90+
.set(KNOWN_FINDINGS.LINE, line)
91+
.set(KNOWN_FINDINGS.LINE_HASH, lineHash)
92+
.whenNotMatchedThenInsert(KNOWN_FINDINGS.ID, KNOWN_FINDINGS.CONFIGURATION_SCOPE_ID, KNOWN_FINDINGS.IDE_RELATIVE_FILE_PATH, KNOWN_FINDINGS.SERVER_KEY, KNOWN_FINDINGS.RULE_KEY,
93+
KNOWN_FINDINGS.MESSAGE, KNOWN_FINDINGS.INTRODUCTION_DATE, KNOWN_FINDINGS.FINDING_TYPE,
94+
KNOWN_FINDINGS.START_LINE, KNOWN_FINDINGS.START_LINE_OFFSET, KNOWN_FINDINGS.END_LINE, KNOWN_FINDINGS.END_LINE_OFFSET, KNOWN_FINDINGS.TEXT_RANGE_HASH,
95+
KNOWN_FINDINGS.LINE, KNOWN_FINDINGS.LINE_HASH)
9696
.values(finding.getId().toString(), configurationScopeId, clientRelativePath.toString(), finding.getServerKey(), finding.getRuleKey(),
9797
finding.getMessage(), introDate, type.name(),
9898
startLine, startLineOffset, endLine, endLineOffset, textRangeHash,
@@ -104,46 +104,46 @@ private void storeKnownFindings(String configurationScopeId, Path clientRelative
104104

105105
private List<KnownFinding> getKnownFindingsForFile(String configurationScopeId, Path filePath, KnownFindingType type) {
106106
var issuesInFile = database.dsl()
107-
.selectFrom(KNOWN_FINDING)
108-
.where(KNOWN_FINDING.CONFIGURATION_SCOPE_ID.eq(configurationScopeId)
109-
.and(KNOWN_FINDING.IDE_RELATIVE_FILE_PATH.eq(filePath.toString()))
110-
.and(KNOWN_FINDING.FINDING_TYPE.eq(type.name()))
107+
.selectFrom(KNOWN_FINDINGS)
108+
.where(KNOWN_FINDINGS.CONFIGURATION_SCOPE_ID.eq(configurationScopeId)
109+
.and(KNOWN_FINDINGS.IDE_RELATIVE_FILE_PATH.eq(filePath.toString()))
110+
.and(KNOWN_FINDINGS.FINDING_TYPE.eq(type.name()))
111111
)
112112
.fetch();
113113
return issuesInFile.stream()
114-
.map(this::recordToKnownFinding)
114+
.map(KnownFindingsRepository::recordToKnownFinding)
115115
.toList();
116116
}
117117

118-
private KnownFinding recordToKnownFinding(Record rec) {
119-
var id = UUID.fromString(rec.get(KNOWN_FINDING.ID));
120-
var introductionDate = rec.get(KNOWN_FINDING.INTRODUCTION_DATE).atZone(ZoneId.systemDefault()).toInstant();
118+
private static KnownFinding recordToKnownFinding(Record rec) {
119+
var id = UUID.fromString(rec.get(KNOWN_FINDINGS.ID));
120+
var introductionDate = rec.get(KNOWN_FINDINGS.INTRODUCTION_DATE).atZone(ZoneId.systemDefault()).toInstant();
121121
var textRangeWithHash = getTextRangeWithHash(rec);
122122
var lineWithHash = getLineWithHash(rec);
123123
return new KnownFinding(
124124
id,
125-
rec.get(KNOWN_FINDING.SERVER_KEY),
125+
rec.get(KNOWN_FINDINGS.SERVER_KEY),
126126
textRangeWithHash, lineWithHash,
127-
rec.get(KNOWN_FINDING.RULE_KEY),
128-
rec.get(KNOWN_FINDING.MESSAGE),
127+
rec.get(KNOWN_FINDINGS.RULE_KEY),
128+
rec.get(KNOWN_FINDINGS.MESSAGE),
129129
introductionDate
130130
);
131131
}
132132

133133
private static LineWithHash getLineWithHash(Record rec) {
134-
if (rec.get(KNOWN_FINDING.LINE) == null) return null;
135-
var line = rec.get(KNOWN_FINDING.LINE);
136-
var hash = rec.get(KNOWN_FINDING.LINE_HASH);
134+
if (rec.get(KNOWN_FINDINGS.LINE) == null) return null;
135+
var line = rec.get(KNOWN_FINDINGS.LINE);
136+
var hash = rec.get(KNOWN_FINDINGS.LINE_HASH);
137137
return new LineWithHash(line, hash);
138138
}
139139

140140
private static TextRangeWithHash getTextRangeWithHash(Record rec) {
141-
if (rec.get(KNOWN_FINDING.START_LINE) == null) return null;
142-
var startLine = rec.get(KNOWN_FINDING.START_LINE);
143-
var endLine = rec.get(KNOWN_FINDING.END_LINE);
144-
var startLineOffset = rec.get(KNOWN_FINDING.START_LINE_OFFSET);
145-
var endLineOffset = rec.get(KNOWN_FINDING.END_LINE_OFFSET);
146-
var hash = rec.get(KNOWN_FINDING.TEXT_RANGE_HASH);
141+
if (rec.get(KNOWN_FINDINGS.START_LINE) == null) return null;
142+
var startLine = rec.get(KNOWN_FINDINGS.START_LINE);
143+
var endLine = rec.get(KNOWN_FINDINGS.END_LINE);
144+
var startLineOffset = rec.get(KNOWN_FINDINGS.START_LINE_OFFSET);
145+
var endLineOffset = rec.get(KNOWN_FINDINGS.END_LINE_OFFSET);
146+
var hash = rec.get(KNOWN_FINDINGS.TEXT_RANGE_HASH);
147147
return new TextRangeWithHash(startLine, startLineOffset, endLine, endLineOffset, hash);
148148
}
149149

backend/commons/src/main/resources/db/migration/V1__init_database.sql

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@ CREATE TABLE IF NOT EXISTS AI_CODEFIX_SETTINGS (
99
CONSTRAINT pk_ai_codefix_settings PRIMARY KEY (connection_id)
1010
);
1111

12-
CREATE TABLE IF NOT EXISTS KNOWN_FINDING (
12+
CREATE TABLE IF NOT EXISTS KNOWN_FINDINGS (
1313
-- UUID
1414
id VARCHAR(255) NOT NULL PRIMARY KEY,
15-
configuration_scope_id VARCHAR(255),
16-
ide_relative_file_path VARCHAR(255),
15+
configuration_scope_id VARCHAR(255) NOT NULL,
16+
ide_relative_file_path VARCHAR(255) NOT NULL,
1717
server_key VARCHAR(255),
18-
rule_key VARCHAR(255),
19-
message VARCHAR(255),
20-
introduction_date TIMESTAMP,
21-
finding_type VARCHAR(255),
18+
rule_key VARCHAR(255) NOT NULL,
19+
message VARCHAR(255) NOT NULL,
20+
introduction_date TIMESTAMP NOT NULL,
21+
finding_type VARCHAR(255) NOT NULL,
2222
-- TextRangeWithHash
2323
start_line INT,
2424
start_line_offset INT,

backend/commons/src/test/java/org/sonarsource/sonarlint/core/commons/storage/repository/KnownFindingsRepositoryTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
3838

39-
public class KnownFindingsRepositoryTests {
39+
class KnownFindingsRepositoryTests {
4040

4141
@RegisterExtension
4242
static SonarLintLogTester logTester = new SonarLintLogTester();

rpc-protocol/src/main/java/org/sonarsource/sonarlint/core/rpc/protocol/backend/initialize/InitializeParams.java

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ public class InitializeParams {
5353
private final boolean automaticAnalysisEnabled;
5454
private final TelemetryMigrationDto telemetryMigration;
5555
private final LogLevel logLevel;
56-
private final boolean newSonarLintDatabaseEnabled;
5756

5857
/**
5958
* @deprecated use newer constructor with log level
@@ -88,11 +87,10 @@ public InitializeParams(
8887
this(clientConstantInfo, telemetryConstantAttributes, httpConfiguration, alternativeSonarCloudEnvironment, backendCapabilities, storageRoot, workDir, embeddedPluginPaths,
8988
connectedModeEmbeddedPluginPathsByKey, enabledLanguagesInStandaloneMode, extraEnabledLanguagesInConnectedMode, disabledPluginKeysForAnalysis, sonarQubeConnections,
9089
sonarCloudConnections, sonarlintUserHome, standaloneRuleConfigByKey, isFocusOnNewCode, languageSpecificRequirements, automaticAnalysisEnabled, telemetryMigration,
91-
LogLevel.TRACE, false);
90+
LogLevel.TRACE);
9291
}
9392

9493
/**
95-
* @deprecated use newer constructor with newSonarLintDatabaseEnabled
9694
* @param enabledLanguagesInStandaloneMode if IPYTHON is part of the list and a configuration scope is bound, standalone active rules will be used
9795
* @param telemetryConstantAttributes Static information about the client, that will be sent with the telemetry payload
9896
* @param workDir Path to work directory. If null, will default to [sonarlintUserHome]/work
@@ -121,42 +119,6 @@ public InitializeParams(
121119
boolean automaticAnalysisEnabled,
122120
@Nullable TelemetryMigrationDto telemetryMigration,
123121
LogLevel logLevel) {
124-
this(clientConstantInfo, telemetryConstantAttributes, httpConfiguration, alternativeSonarCloudEnvironment, backendCapabilities, storageRoot, workDir, embeddedPluginPaths,
125-
connectedModeEmbeddedPluginPathsByKey, enabledLanguagesInStandaloneMode, extraEnabledLanguagesInConnectedMode, disabledPluginKeysForAnalysis, sonarQubeConnections,
126-
sonarCloudConnections, sonarlintUserHome, standaloneRuleConfigByKey, isFocusOnNewCode, languageSpecificRequirements, automaticAnalysisEnabled, telemetryMigration,
127-
logLevel, false);
128-
}
129-
130-
/**
131-
* @param enabledLanguagesInStandaloneMode if IPYTHON is part of the list and a configuration scope is bound, standalone active rules will be used
132-
* @param telemetryConstantAttributes Static information about the client, that will be sent with the telemetry payload
133-
* @param workDir Path to work directory. If null, will default to [sonarlintUserHome]/work
134-
* @param sonarlintUserHome Path to SonarLint user home directory. If null, will default to the SONARLINT_USER_HOME env variable if set, else ~/.sonarlint
135-
* @param standaloneRuleConfigByKey Local rule configuration for standalone analysis. This configuration will override defaults rule activation and parameters.
136-
*/
137-
public InitializeParams(
138-
ClientConstantInfoDto clientConstantInfo,
139-
TelemetryClientConstantAttributesDto telemetryConstantAttributes,
140-
HttpConfigurationDto httpConfiguration,
141-
@Nullable SonarCloudAlternativeEnvironmentDto alternativeSonarCloudEnvironment,
142-
Set<BackendCapability> backendCapabilities,
143-
Path storageRoot,
144-
@Nullable Path workDir,
145-
@Nullable Set<Path> embeddedPluginPaths,
146-
@Nullable Map<String, Path> connectedModeEmbeddedPluginPathsByKey,
147-
@Nullable Set<Language> enabledLanguagesInStandaloneMode,
148-
@Nullable Set<Language> extraEnabledLanguagesInConnectedMode,
149-
@Nullable Set<String> disabledPluginKeysForAnalysis,
150-
@Nullable List<SonarQubeConnectionConfigurationDto> sonarQubeConnections,
151-
@Nullable List<SonarCloudConnectionConfigurationDto> sonarCloudConnections,
152-
@Nullable String sonarlintUserHome,
153-
@Nullable Map<String, StandaloneRuleConfigDto> standaloneRuleConfigByKey,
154-
boolean isFocusOnNewCode,
155-
@Nullable LanguageSpecificRequirements languageSpecificRequirements,
156-
boolean automaticAnalysisEnabled,
157-
@Nullable TelemetryMigrationDto telemetryMigration,
158-
LogLevel logLevel,
159-
boolean newSonarLintDatabaseEnabled) {
160122
this.clientConstantInfo = clientConstantInfo;
161123
this.telemetryConstantAttributes = telemetryConstantAttributes;
162124
this.httpConfiguration = httpConfiguration;
@@ -178,7 +140,6 @@ public InitializeParams(
178140
this.automaticAnalysisEnabled = automaticAnalysisEnabled;
179141
this.telemetryMigration = telemetryMigration;
180142
this.logLevel = logLevel;
181-
this.newSonarLintDatabaseEnabled = newSonarLintDatabaseEnabled;
182143
}
183144

184145
public ClientConstantInfoDto getClientConstantInfo() {
@@ -269,8 +230,4 @@ public TelemetryMigrationDto getTelemetryMigration() {
269230
public LogLevel getLogLevel() {
270231
return logLevel;
271232
}
272-
273-
public boolean isUseNewSonarLintDatabaseEnabled() {
274-
return newSonarLintDatabaseEnabled;
275-
}
276233
}

0 commit comments

Comments
 (0)