Skip to content

Commit 0a66a03

Browse files
committed
SLE-1169: Replace deprecated FeatureFlagsDto with BackendCapability
1 parent 1ac6dff commit 0a66a03

File tree

1 file changed

+29
-8
lines changed

1 file changed

+29
-8
lines changed

org.sonarlint.eclipse.core/src/org/sonarlint/eclipse/core/internal/backend/SonarLintBackendService.java

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.nio.file.Path;
2727
import java.nio.file.Paths;
2828
import java.nio.file.attribute.PosixFilePermission;
29+
import java.util.EnumSet;
2930
import java.util.HashMap;
3031
import java.util.List;
3132
import java.util.Map;
@@ -69,8 +70,8 @@
6970
import org.sonarsource.sonarlint.core.rpc.protocol.backend.connection.config.DidChangeCredentialsParams;
7071
import org.sonarsource.sonarlint.core.rpc.protocol.backend.connection.projects.GetAllProjectsParams;
7172
import org.sonarsource.sonarlint.core.rpc.protocol.backend.connection.projects.SonarProjectDto;
73+
import org.sonarsource.sonarlint.core.rpc.protocol.backend.initialize.BackendCapability;
7274
import org.sonarsource.sonarlint.core.rpc.protocol.backend.initialize.ClientConstantInfoDto;
73-
import org.sonarsource.sonarlint.core.rpc.protocol.backend.initialize.FeatureFlagsDto;
7475
import org.sonarsource.sonarlint.core.rpc.protocol.backend.initialize.HttpConfigurationDto;
7576
import org.sonarsource.sonarlint.core.rpc.protocol.backend.initialize.InitializeParams;
7677
import org.sonarsource.sonarlint.core.rpc.protocol.backend.initialize.JsTsRequirementsDto;
@@ -191,22 +192,16 @@ protected IStatus run(IProgressMonitor monitor) {
191192
var sqConnections = ConnectionSynchronizer.buildSqConnectionDtos();
192193
var scConnections = ConnectionSynchronizer.buildScConnectionDtos();
193194

194-
// Check if telemetry was disabled via system properties (e.g. in unit / integration tests)
195-
var telemetryEnabled = !Boolean.parseBoolean(System.getProperty("sonarlint.telemetry.disabled", "false"));
196-
197195
// Getting this information is expensive, therefore only do it once and re-use the values!
198196
var plugInVersion = SonarLintUtils.getPluginVersion();
199197
var ideVersion = SonarLintTelemetry.ideVersionForTelemetry();
200198

201-
var monitoringEnabled = MonitoringService.isDogfoodingEnvironment();
202-
SonarLintLogger.get().debug("Monitoring with Sentry is " + (monitoringEnabled ? "enabled" : "disabled"));
203-
204199
backend.initialize(new InitializeParams(
205200
new ClientConstantInfoDto(getIdeName(), "SonarQube for IDE (SonarLint) - Eclipse " + plugInVersion + " - " + ideVersion),
206201
new TelemetryClientConstantAttributesDto("eclipse", "SonarLint Eclipse", plugInVersion, ideVersion, Map.of()),
207202
httpConfiguration,
208203
getSonarCloudAlternativeEnvironment(),
209-
new FeatureFlagsDto(true, true, true, true, false, true, true, true, telemetryEnabled, true, monitoringEnabled),
204+
getBackendCapabilities(),
210205
StoragePathManager.getStorageDir(),
211206
StoragePathManager.getDefaultWorkDir(),
212207
Set.copyOf(embeddedPluginPaths),
@@ -242,6 +237,32 @@ protected IStatus run(IProgressMonitor monitor) {
242237
return Status.OK_STATUS;
243238
}
244239

240+
private Set<BackendCapability> getBackendCapabilities() {
241+
// Check if telemetry was disabled via system properties (e.g. in unit / integration tests)
242+
var telemetryEnabled = !Boolean.parseBoolean(System.getProperty("sonarlint.telemetry.disabled", "false"));
243+
244+
var monitoringEnabled = MonitoringService.isDogfoodingEnvironment();
245+
SonarLintLogger.get().debug("Monitoring with Sentry is " + (monitoringEnabled ? "enabled" : "disabled"));
246+
247+
var backendCapabilities = EnumSet.of(
248+
BackendCapability.SMART_NOTIFICATIONS,
249+
BackendCapability.PROJECT_SYNCHRONIZATION,
250+
BackendCapability.EMBEDDED_SERVER,
251+
BackendCapability.SERVER_SENT_EVENTS,
252+
BackendCapability.DATAFLOW_BUG_DETECTION,
253+
BackendCapability.FULL_SYNCHRONIZATION);
254+
255+
if (telemetryEnabled) {
256+
backendCapabilities.add(BackendCapability.TELEMETRY);
257+
}
258+
259+
if (monitoringEnabled) {
260+
backendCapabilities.add(BackendCapability.MONITORING);
261+
}
262+
263+
return backendCapabilities;
264+
}
265+
245266
/**
246267
* When running tests, Tycho does not execute p2 directives, so we have to manually fix the permissions of the sloop executables.
247268
*/

0 commit comments

Comments
 (0)