From ad2942063537082ed902ff0029d0edea8c650399 Mon Sep 17 00:00:00 2001 From: Teryk Bellahsene Date: Tue, 14 Feb 2017 15:26:44 +0100 Subject: [PATCH] Move WebServicesWs to the specific package ws --- .../platformlevel/PlatformLevel4.java | 2 +- .../platformlevel/PlatformLevelSafeMode.java | 2 +- .../server/ws/{ => ws}/WebServicesWs.java | 31 +++++++++---------- .../org/sonar/server/ws/ws/package-info.java | 25 +++++++++++++++ .../server/ws/{ => ws}/list-example.json | 0 .../ws/{ => ws}/removed-ws-example.json | 0 .../ws/{ => ws}/response_example-example.json | 0 .../server/ws/{ => ws}/WebServicesWsTest.java | 5 +-- .../list_including_internals.json | 0 .../WebServicesWsTest/metrics_example.json | 0 .../WebServicesWsTest/response_example.json | 0 .../ws/{ => ws}/web-service-engine-test.txt | 0 .../ws/{ => ws}/web-services-ws-test.txt | 0 13 files changed, 44 insertions(+), 21 deletions(-) rename server/sonar-server/src/main/java/org/sonar/server/ws/{ => ws}/WebServicesWs.java (88%) create mode 100644 server/sonar-server/src/main/java/org/sonar/server/ws/ws/package-info.java rename server/sonar-server/src/main/resources/org/sonar/server/ws/{ => ws}/list-example.json (100%) rename server/sonar-server/src/main/resources/org/sonar/server/ws/{ => ws}/removed-ws-example.json (100%) rename server/sonar-server/src/main/resources/org/sonar/server/ws/{ => ws}/response_example-example.json (100%) rename server/sonar-server/src/test/java/org/sonar/server/ws/{ => ws}/WebServicesWsTest.java (97%) rename server/sonar-server/src/test/resources/org/sonar/server/ws/{ => ws}/WebServicesWsTest/list_including_internals.json (100%) rename server/sonar-server/src/test/resources/org/sonar/server/ws/{ => ws}/WebServicesWsTest/metrics_example.json (100%) rename server/sonar-server/src/test/resources/org/sonar/server/ws/{ => ws}/WebServicesWsTest/response_example.json (100%) rename server/sonar-server/src/test/resources/org/sonar/server/ws/{ => ws}/web-service-engine-test.txt (100%) rename server/sonar-server/src/test/resources/org/sonar/server/ws/{ => ws}/web-services-ws-test.txt (100%) diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java index 2e09cabfa1d..96b8b198940 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java @@ -214,7 +214,7 @@ import org.sonar.server.webhook.ws.WebhooksWsModule; import org.sonar.server.ws.DeprecatedPropertiesWsFilter; import org.sonar.server.ws.WebServiceEngine; import org.sonar.server.ws.WebServiceFilter; -import org.sonar.server.ws.WebServicesWs; +import org.sonar.server.ws.ws.WebServicesWs; public class PlatformLevel4 extends PlatformLevel { diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevelSafeMode.java b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevelSafeMode.java index e9890d05d5e..c0e605bdcab 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevelSafeMode.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevelSafeMode.java @@ -33,7 +33,7 @@ import org.sonar.server.platform.ws.StatusAction; import org.sonar.server.platform.ws.SystemWs; import org.sonar.server.ws.WebServiceEngine; import org.sonar.server.ws.WebServiceFilter; -import org.sonar.server.ws.WebServicesWs; +import org.sonar.server.ws.ws.WebServicesWs; public class PlatformLevelSafeMode extends PlatformLevel { public PlatformLevelSafeMode(PlatformLevel parent) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/ws/WebServicesWs.java b/server/sonar-server/src/main/java/org/sonar/server/ws/ws/WebServicesWs.java similarity index 88% rename from server/sonar-server/src/main/java/org/sonar/server/ws/WebServicesWs.java rename to server/sonar-server/src/main/java/org/sonar/server/ws/ws/WebServicesWs.java index 2a3bec916e8..eefd1d5b5e8 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/ws/WebServicesWs.java +++ b/server/sonar-server/src/main/java/org/sonar/server/ws/ws/WebServicesWs.java @@ -1,7 +1,7 @@ /* * SonarQube * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com + * mailto:contact 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 @@ -17,14 +17,13 @@ * 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.sonar.server.ws; +package org.sonar.server.ws.ws; import com.google.common.collect.Ordering; import java.io.IOException; import java.util.List; import java.util.Set; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.utils.text.JsonWriter; @@ -56,6 +55,7 @@ public class WebServicesWs implements WebService { .setDescription("List web services") .setResponseExample(getClass().getResource("list-example.json")) .setHandler((request, response) -> handleList(context.controllers(), request, response)); + action .createParam("include_internals") .setDescription("Include web services that are implemented for internal use only. Their forward-compatibility is " + @@ -70,21 +70,18 @@ public class WebServicesWs implements WebService { .setDescription("Display web service response example") .setResponseExample(WebServicesWs.class.getResource("response_example-example.json")) .setSince("4.4") - .setHandler(new RequestHandler() { - @Override - public void handle(Request request, Response response) throws Exception { - String controllerKey = request.mandatoryParam("controller"); - Controller controller = context.controller(controllerKey); - if (controller == null) { - throw new IllegalArgumentException("Controller does not exist: " + controllerKey); - } - String actionKey = request.mandatoryParam("action"); - Action action = controller.action(actionKey); - if (action == null) { - throw new IllegalArgumentException("Action does not exist: " + actionKey); - } - handleResponseExample(action, response); + .setHandler((request, response) -> { + String controllerKey = request.mandatoryParam("controller"); + Controller controller1 = context.controller(controllerKey); + if (controller1 == null) { + throw new IllegalArgumentException("Controller does not exist: " + controllerKey); + } + String actionKey = request.mandatoryParam("action"); + Action action1 = controller1.action(actionKey); + if (action1 == null) { + throw new IllegalArgumentException("Action does not exist: " + actionKey); } + handleResponseExample(action1, response); }); action.createParam("controller") .setRequired(true) diff --git a/server/sonar-server/src/main/java/org/sonar/server/ws/ws/package-info.java b/server/sonar-server/src/main/java/org/sonar/server/ws/ws/package-info.java new file mode 100644 index 00000000000..26d5041c4f3 --- /dev/null +++ b/server/sonar-server/src/main/java/org/sonar/server/ws/ws/package-info.java @@ -0,0 +1,25 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:contact 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.sonar.server.ws.ws; + +import javax.annotation.ParametersAreNonnullByDefault; + diff --git a/server/sonar-server/src/main/resources/org/sonar/server/ws/list-example.json b/server/sonar-server/src/main/resources/org/sonar/server/ws/ws/list-example.json similarity index 100% rename from server/sonar-server/src/main/resources/org/sonar/server/ws/list-example.json rename to server/sonar-server/src/main/resources/org/sonar/server/ws/ws/list-example.json diff --git a/server/sonar-server/src/main/resources/org/sonar/server/ws/removed-ws-example.json b/server/sonar-server/src/main/resources/org/sonar/server/ws/ws/removed-ws-example.json similarity index 100% rename from server/sonar-server/src/main/resources/org/sonar/server/ws/removed-ws-example.json rename to server/sonar-server/src/main/resources/org/sonar/server/ws/ws/removed-ws-example.json diff --git a/server/sonar-server/src/main/resources/org/sonar/server/ws/response_example-example.json b/server/sonar-server/src/main/resources/org/sonar/server/ws/ws/response_example-example.json similarity index 100% rename from server/sonar-server/src/main/resources/org/sonar/server/ws/response_example-example.json rename to server/sonar-server/src/main/resources/org/sonar/server/ws/ws/response_example-example.json diff --git a/server/sonar-server/src/test/java/org/sonar/server/ws/WebServicesWsTest.java b/server/sonar-server/src/test/java/org/sonar/server/ws/ws/WebServicesWsTest.java similarity index 97% rename from server/sonar-server/src/test/java/org/sonar/server/ws/WebServicesWsTest.java rename to server/sonar-server/src/test/java/org/sonar/server/ws/ws/WebServicesWsTest.java index f8a73831fef..dd1920577ab 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/ws/WebServicesWsTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/ws/ws/WebServicesWsTest.java @@ -1,7 +1,7 @@ /* * SonarQube * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com + * mailto:contact 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 @@ -17,11 +17,12 @@ * 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.sonar.server.ws; +package org.sonar.server.ws.ws; import com.google.common.io.Resources; import org.junit.Test; import org.sonar.api.server.ws.WebService; +import org.sonar.server.ws.WsTester; import org.sonar.test.JsonAssert; import static org.assertj.core.api.Assertions.assertThat; diff --git a/server/sonar-server/src/test/resources/org/sonar/server/ws/WebServicesWsTest/list_including_internals.json b/server/sonar-server/src/test/resources/org/sonar/server/ws/ws/WebServicesWsTest/list_including_internals.json similarity index 100% rename from server/sonar-server/src/test/resources/org/sonar/server/ws/WebServicesWsTest/list_including_internals.json rename to server/sonar-server/src/test/resources/org/sonar/server/ws/ws/WebServicesWsTest/list_including_internals.json diff --git a/server/sonar-server/src/test/resources/org/sonar/server/ws/WebServicesWsTest/metrics_example.json b/server/sonar-server/src/test/resources/org/sonar/server/ws/ws/WebServicesWsTest/metrics_example.json similarity index 100% rename from server/sonar-server/src/test/resources/org/sonar/server/ws/WebServicesWsTest/metrics_example.json rename to server/sonar-server/src/test/resources/org/sonar/server/ws/ws/WebServicesWsTest/metrics_example.json diff --git a/server/sonar-server/src/test/resources/org/sonar/server/ws/WebServicesWsTest/response_example.json b/server/sonar-server/src/test/resources/org/sonar/server/ws/ws/WebServicesWsTest/response_example.json similarity index 100% rename from server/sonar-server/src/test/resources/org/sonar/server/ws/WebServicesWsTest/response_example.json rename to server/sonar-server/src/test/resources/org/sonar/server/ws/ws/WebServicesWsTest/response_example.json diff --git a/server/sonar-server/src/test/resources/org/sonar/server/ws/web-service-engine-test.txt b/server/sonar-server/src/test/resources/org/sonar/server/ws/ws/web-service-engine-test.txt similarity index 100% rename from server/sonar-server/src/test/resources/org/sonar/server/ws/web-service-engine-test.txt rename to server/sonar-server/src/test/resources/org/sonar/server/ws/ws/web-service-engine-test.txt diff --git a/server/sonar-server/src/test/resources/org/sonar/server/ws/web-services-ws-test.txt b/server/sonar-server/src/test/resources/org/sonar/server/ws/ws/web-services-ws-test.txt similarity index 100% rename from server/sonar-server/src/test/resources/org/sonar/server/ws/web-services-ws-test.txt rename to server/sonar-server/src/test/resources/org/sonar/server/ws/ws/web-services-ws-test.txt -- 2.39.5