aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-ws/src/main
diff options
context:
space:
mode:
authorLéo Geoffroy <leo.geoffroy@sonarsource.com>2024-11-22 10:38:56 +0100
committersonartech <sonartech@sonarsource.com>2024-11-26 20:02:50 +0000
commite9fa793d858fbca201bae86c74852b3ace3999af (patch)
tree11800c451f988f29505ea14a91b81bd9c479e7fd /sonar-ws/src/main
parent0fd7409c293ea55ea78ae19921b9c0e0aa49abde (diff)
downloadsonarqube-e9fa793d858fbca201bae86c74852b3ace3999af.tar.gz
sonarqube-e9fa793d858fbca201bae86c74852b3ace3999af.zip
SONAR-23654 Fix BBTs
Diffstat (limited to 'sonar-ws/src/main')
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java8
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java3
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/mode/ModeResource.java29
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/mode/ModeService.java54
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/mode/package-info.java23
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;