diff options
author | Léo Geoffroy <leo.geoffroy@sonarsource.com> | 2024-11-22 10:38:56 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2024-11-26 20:02:50 +0000 |
commit | e9fa793d858fbca201bae86c74852b3ace3999af (patch) | |
tree | 11800c451f988f29505ea14a91b81bd9c479e7fd /sonar-ws/src/main | |
parent | 0fd7409c293ea55ea78ae19921b9c0e0aa49abde (diff) | |
download | sonarqube-e9fa793d858fbca201bae86c74852b3ace3999af.tar.gz sonarqube-e9fa793d858fbca201bae86c74852b3ace3999af.zip |
SONAR-23654 Fix BBTs
Diffstat (limited to 'sonar-ws/src/main')
5 files changed, 117 insertions, 0 deletions
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java index 73254c4d5c1..4d060fe9c83 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java @@ -47,6 +47,7 @@ import org.sonarqube.ws.client.l10n.L10nService; import org.sonarqube.ws.client.languages.LanguagesService; import org.sonarqube.ws.client.measures.MeasuresService; import org.sonarqube.ws.client.metrics.MetricsService; +import org.sonarqube.ws.client.mode.ModeService; import org.sonarqube.ws.client.monitoring.MonitoringService; import org.sonarqube.ws.client.navigation.NavigationService; import org.sonarqube.ws.client.newcodeperiods.NewCodePeriodsService; @@ -153,6 +154,7 @@ class DefaultWsClient implements WsClient { private final GitlabPermissionService gitlabPermissionsService; private final GitlabSynchronizationRunService gitlabSynchronizationRunService; + private final ModeService modeService; DefaultWsClient(WsConnector wsConnector) { this.wsConnector = wsConnector; @@ -178,6 +180,7 @@ class DefaultWsClient implements WsClient { this.languagesService = new LanguagesService(wsConnector); this.measuresService = new MeasuresService(wsConnector); this.metricsService = new MetricsService(wsConnector); + this.modeService = new ModeService(wsConnector); this.monitoringService = new MonitoringService(wsConnector); this.navigationService = new NavigationService(wsConnector); this.newCodePeriodsService = new NewCodePeriodsService(wsConnector); @@ -361,6 +364,11 @@ class DefaultWsClient implements WsClient { } @Override + public ModeService mode() { + return modeService; + } + + @Override public MonitoringService monitoring() { return monitoringService; } diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java index 4249cf6bab3..e582d329d00 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java @@ -47,6 +47,7 @@ import org.sonarqube.ws.client.l10n.L10nService; import org.sonarqube.ws.client.languages.LanguagesService; import org.sonarqube.ws.client.measures.MeasuresService; import org.sonarqube.ws.client.metrics.MetricsService; +import org.sonarqube.ws.client.mode.ModeService; import org.sonarqube.ws.client.monitoring.MonitoringService; import org.sonarqube.ws.client.navigation.NavigationService; import org.sonarqube.ws.client.newcodeperiods.NewCodePeriodsService; @@ -156,6 +157,8 @@ public interface WsClient { MetricsService metrics(); + ModeService mode(); + NavigationService navigation(); NewCodePeriodsService newCodePeriods(); diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/mode/ModeResource.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/mode/ModeResource.java new file mode 100644 index 00000000000..4653814ca91 --- /dev/null +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/mode/ModeResource.java @@ -0,0 +1,29 @@ +/* + * SonarQube + * Copyright (C) 2009-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonarqube.ws.client.mode; + +import javax.annotation.Nullable; + +public record ModeResource(ModeEnum mode, @Nullable Boolean modified) { + public enum ModeEnum { + STANDARD_EXPERIENCE, + MQR + } +} diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/mode/ModeService.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/mode/ModeService.java new file mode 100644 index 00000000000..0e6d7f8db0c --- /dev/null +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/mode/ModeService.java @@ -0,0 +1,54 @@ +/* + * SonarQube + * Copyright (C) 2009-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonarqube.ws.client.mode; + +import com.google.gson.Gson; +import org.sonarqube.ws.MediaTypes; +import org.sonarqube.ws.client.BaseService; +import org.sonarqube.ws.client.GetRequest; +import org.sonarqube.ws.client.PatchRequest; +import org.sonarqube.ws.client.WsConnector; +import org.sonarqube.ws.client.WsResponse; + +public class ModeService extends BaseService { + + public ModeService(WsConnector wsConnector) { + super(wsConnector, "api/v2"); + } + + public void setMode(ModeResource.ModeEnum mode) { + callEndpointToPatchModeMapping(new ModeResource(mode, null)).close(); + } + + private WsResponse callEndpointToPatchModeMapping(ModeResource request) { + return call( + new PatchRequest(path("clean-code-policy/mode")) + .setBody(new Gson().toJson(request)) + .setMediaType(MediaTypes.JSON)); + } + + ModeResource getMode() { + return new Gson().fromJson(call( + new GetRequest(path("clean-code-policy/mode")) + .setMediaType(MediaTypes.JSON)).content(), + ModeResource.class); + } + +} diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/mode/package-info.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/mode/package-info.java new file mode 100644 index 00000000000..2ee5f580580 --- /dev/null +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/mode/package-info.java @@ -0,0 +1,23 @@ +/* + * SonarQube + * Copyright (C) 2009-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonarqube.ws.client.mode; + +import javax.annotation.ParametersAreNonnullByDefault; |