Browse Source

Generate client for api/settings

tags/7.0-RC1
Simon Brandhof 6 years ago
parent
commit
b4ea0e2987
19 changed files with 146 additions and 123 deletions
  1. 12
    10
      server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/SettingTester.java
  2. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/setting/ws/EncryptAction.java
  3. 6
    8
      server/sonar-server/src/main/java/org/sonar/server/setting/ws/ListDefinitionsAction.java
  4. 8
    10
      server/sonar-server/src/main/java/org/sonar/server/setting/ws/ResetAction.java
  5. 10
    12
      server/sonar-server/src/main/java/org/sonar/server/setting/ws/SetAction.java
  6. 1
    2
      server/sonar-server/src/main/java/org/sonar/server/setting/ws/SettingsWs.java
  7. 33
    0
      server/sonar-server/src/main/java/org/sonar/server/setting/ws/SettingsWsParameters.java
  8. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/setting/ws/SettingsWsSupport.java
  9. 8
    9
      server/sonar-server/src/main/java/org/sonar/server/setting/ws/ValuesAction.java
  10. 7
    10
      server/sonar-server/src/main/java/org/sonar/server/ws/DeprecatedPropertiesWsFilter.java
  11. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/setting/ws/EncryptActionTest.java
  12. 1
    1
      sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java
  13. 1
    1
      sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java
  14. 4
    4
      tests/src/test/java/org/sonarqube/tests/settings/DeprecatedPropertiesWsTest.java
  15. 5
    5
      tests/src/test/java/org/sonarqube/tests/settings/EmailsTest.java
  16. 12
    15
      tests/src/test/java/org/sonarqube/tests/settings/PropertySetsTest.java
  17. 24
    24
      tests/src/test/java/org/sonarqube/tests/settings/SettingsTest.java
  18. 6
    4
      tests/src/test/java/org/sonarqube/tests/webhook/WebhooksTest.java
  19. 5
    5
      tests/src/test/java/util/ItUtils.java

+ 12
- 10
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/SettingTester.java View File

@@ -26,10 +26,12 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.Nullable;
import org.sonarqube.ws.Settings;
import org.sonarqube.ws.client.setting.ListDefinitionsRequest;
import org.sonarqube.ws.client.setting.ResetRequest;
import org.sonarqube.ws.client.setting.SetRequest;
import org.sonarqube.ws.client.setting.SettingsService;
import org.sonarqube.ws.client.settings.ListDefinitionsRequest;
import org.sonarqube.ws.client.settings.ResetRequest;
import org.sonarqube.ws.client.settings.SetRequest;
import org.sonarqube.ws.client.settings.SettingsService;

import static java.util.Arrays.asList;

public class SettingTester {

@@ -48,21 +50,21 @@ public class SettingTester {

void deleteAll() {
List<String> settingKeys = Stream.concat(
session.wsClient().settings().listDefinitions(ListDefinitionsRequest.builder().build()).getDefinitionsList()
session.wsClient().settings().listDefinitions(new ListDefinitionsRequest()).getDefinitionsList()
.stream()
.filter(def -> def.getType() != Settings.Type.LICENSE)
.map(Settings.Definition::getKey),
EMAIL_SETTINGS.stream())
.collect(Collectors.toList());
session.wsClient().settings().reset(ResetRequest.builder().setKeys(settingKeys).build());
session.wsClient().settings().reset(new ResetRequest().setKeys(settingKeys));
}

public void resetSettings(String... keys){
session.wsClient().settings().reset(ResetRequest.builder().setKeys(keys).build());
session.wsClient().settings().reset(new ResetRequest().setKeys(asList(keys)));
}

public void resetProjectSettings(String projectKey, String... keys){
session.wsClient().settings().reset(ResetRequest.builder().setComponent(projectKey).setKeys(keys).build());
session.wsClient().settings().reset(new ResetRequest().setComponent(projectKey).setKeys(asList(keys)));
}

public void setGlobalSetting(String key, @Nullable String value) {
@@ -87,9 +89,9 @@ public class SettingTester {

private void setSetting(@Nullable String componentKey, String key, @Nullable String value) {
if (value == null) {
session.wsClient().settings().reset(ResetRequest.builder().setKeys(key).setComponent(componentKey).build());
session.wsClient().settings().reset(new ResetRequest().setKeys(asList(key)).setComponent(componentKey));
} else {
session.wsClient().settings().set(SetRequest.builder().setKey(key).setValue(value).setComponent(componentKey).build());
session.wsClient().settings().set(new SetRequest().setKey(key).setValue(value).setComponent(componentKey));
}
}


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/setting/ws/EncryptAction.java View File

@@ -27,9 +27,9 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.Settings.EncryptWsResponse;

import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_VALUE;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_VALUE;

public class EncryptAction implements SettingsWsAction {
private final UserSession userSession;

+ 6
- 8
server/sonar-server/src/main/java/org/sonar/server/setting/ws/ListDefinitionsAction.java View File

@@ -34,18 +34,17 @@ import org.sonar.server.component.ComponentFinder;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.Settings;
import org.sonarqube.ws.Settings.ListDefinitionsWsResponse;
import org.sonarqube.ws.client.setting.ListDefinitionsRequest;
import org.sonarqube.ws.client.settings.ListDefinitionsRequest;

import static com.google.common.base.Strings.emptyToNull;
import static java.util.Comparator.comparing;
import static org.sonar.api.web.UserRole.USER;
import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.server.setting.ws.SettingsWs.SETTING_ON_BRANCHES;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_BRANCH;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_COMPONENT;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.ACTION_LIST_DEFINITIONS;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_BRANCH;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_COMPONENT;

public class ListDefinitionsAction implements SettingsWsAction {

@@ -66,7 +65,7 @@ public class ListDefinitionsAction implements SettingsWsAction {

@Override
public void define(WebService.NewController context) {
WebService.NewAction action = context.createAction(ACTION_LIST_DEFINITIONS)
WebService.NewAction action = context.createAction("list_definitions")
.setDescription("List settings definitions.<br>" +
"Requires 'Browse' permission when a component is specified<br/>",
"To access licensed settings, authentication is required<br/>" +
@@ -107,10 +106,9 @@ public class ListDefinitionsAction implements SettingsWsAction {
}

private static ListDefinitionsRequest toWsRequest(Request request) {
return ListDefinitionsRequest.builder()
return new ListDefinitionsRequest()
.setComponent(request.param(PARAM_COMPONENT))
.setBranch(request.param(PARAM_BRANCH))
.build();
.setBranch(request.param(PARAM_BRANCH));
}

private static Optional<String> getQualifier(Optional<ComponentDto> component) {

+ 8
- 10
server/sonar-server/src/main/java/org/sonar/server/setting/ws/ResetAction.java View File

@@ -36,15 +36,14 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.setting.ws.SettingValidations.SettingData;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.client.setting.ResetRequest;
import org.sonarqube.ws.client.settings.ResetRequest;

import static java.util.Collections.emptyList;
import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.ACTION_RESET;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_BRANCH;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_COMPONENT;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_KEYS;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_BRANCH;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_COMPONENT;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_KEYS;

public class ResetAction implements SettingsWsAction {

@@ -67,7 +66,7 @@ public class ResetAction implements SettingsWsAction {

@Override
public void define(WebService.NewController context) {
WebService.NewAction action = context.createAction(ACTION_RESET)
WebService.NewAction action = context.createAction("reset")
.setDescription("Remove a setting value.<br>" +
"Requires one of the following permissions: " +
"<ul>" +
@@ -79,7 +78,7 @@ public class ResetAction implements SettingsWsAction {
.setHandler(this);

action.createParam(PARAM_KEYS)
.setDescription("Setting keys")
.setDescription("Comma-separated list of keys")
.setExampleValue("sonar.links.scm,sonar.debt.hoursInDay")
.setRequired(true);
action.createParam(PARAM_COMPONENT)
@@ -126,11 +125,10 @@ public class ResetAction implements SettingsWsAction {
}

private static ResetRequest toWsRequest(Request request) {
return ResetRequest.builder()
return new ResetRequest()
.setKeys(request.paramAsStrings(PARAM_KEYS))
.setComponent(request.param(PARAM_COMPONENT))
.setBranch(request.param(PARAM_BRANCH))
.build();
.setBranch(request.param(PARAM_BRANCH));
}

private Optional<ComponentDto> getComponent(DbSession dbSession, ResetRequest request) {

+ 10
- 12
server/sonar-server/src/main/java/org/sonar/server/setting/ws/SetAction.java View File

@@ -54,19 +54,18 @@ import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.platform.SettingsChangeNotifier;
import org.sonar.server.setting.ws.SettingValidations.SettingData;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.client.setting.SetRequest;
import org.sonarqube.ws.client.settings.SetRequest;

import static com.google.common.base.Preconditions.checkArgument;
import static java.lang.String.format;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.ACTION_SET;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_BRANCH;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_COMPONENT;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_FIELD_VALUES;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_KEY;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_VALUE;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_VALUES;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_BRANCH;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_COMPONENT;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_FIELD_VALUES;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_KEY;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_VALUE;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_VALUES;

public class SetAction implements SettingsWsAction {
private static final Collector<CharSequence, ?, String> COMMA_JOINER = Collectors.joining(",");
@@ -96,7 +95,7 @@ public class SetAction implements SettingsWsAction {

@Override
public void define(WebService.NewController context) {
WebService.NewAction action = context.createAction(ACTION_SET)
WebService.NewAction action = context.createAction("set")
.setDescription("Update a setting value.<br>" +
"Either '%s' or '%s' must be provided.<br> " +
"Requires one of the following permissions: " +
@@ -283,14 +282,13 @@ public class SetAction implements SettingsWsAction {
}

private static SetRequest toWsRequest(Request request) {
return SetRequest.builder()
return new SetRequest()
.setKey(request.mandatoryParam(PARAM_KEY))
.setValue(request.param(PARAM_VALUE))
.setValues(request.multiParam(PARAM_VALUES))
.setFieldValues(request.multiParam(PARAM_FIELD_VALUES))
.setComponent(request.param(PARAM_COMPONENT))
.setBranch(request.param(PARAM_BRANCH))
.build();
.setBranch(request.param(PARAM_BRANCH));
}

private static Map<String, String> readOneFieldValues(String json, String key) {

+ 1
- 2
server/sonar-server/src/main/java/org/sonar/server/setting/ws/SettingsWs.java View File

@@ -24,7 +24,6 @@ import java.util.Set;
import org.sonar.api.server.ws.WebService;

import static org.sonar.core.config.CorePropertyDefinitions.LEAK_PERIOD;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.CONTROLLER_SETTINGS;

public class SettingsWs implements WebService {

@@ -38,7 +37,7 @@ public class SettingsWs implements WebService {

@Override
public void define(Context context) {
NewController controller = context.createController(CONTROLLER_SETTINGS)
NewController controller = context.createController("api/settings")
.setDescription("Manage settings.")
.setSince("6.1");
for (SettingsWsAction action : actions) {

+ 33
- 0
server/sonar-server/src/main/java/org/sonar/server/setting/ws/SettingsWsParameters.java View File

@@ -1,4 +1,37 @@

/*
* SonarQube
* Copyright (C) 2009-2017 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.sonar.server.setting.ws;

public class SettingsWsParameters {

public static final String PARAM_COMPONENT = "component";
public static final String PARAM_BRANCH = "branch";
public static final String PARAM_KEYS = "keys";
public static final String PARAM_KEY = "key";
public static final String PARAM_VALUE = "value";
public static final String PARAM_VALUES = "values";
public static final String PARAM_FIELD_VALUES = "fieldValues";

private SettingsWsParameters() {
// Only static stuff
}

}

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/setting/ws/SettingsWsSupport.java View File

@@ -35,8 +35,8 @@ import org.sonar.server.user.UserSession;
import static org.sonar.api.PropertyType.LICENSE;
import static org.sonar.api.web.UserRole.ADMIN;
import static org.sonar.core.permission.GlobalPermissions.SCAN_EXECUTION;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_BRANCH;
import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_BRANCH;

@ServerSide
public class SettingsWsSupport {

+ 8
- 9
server/sonar-server/src/main/java/org/sonar/server/setting/ws/ValuesAction.java View File

@@ -42,7 +42,7 @@ import org.sonar.server.component.ComponentFinder;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.Settings;
import org.sonarqube.ws.Settings.ValuesWsResponse;
import org.sonarqube.ws.client.setting.ValuesRequest;
import org.sonarqube.ws.client.settings.ValuesRequest;

import static java.lang.String.format;
import static java.util.stream.Stream.concat;
@@ -51,13 +51,12 @@ import static org.sonar.api.CoreProperties.SERVER_ID;
import static org.sonar.api.CoreProperties.SERVER_STARTTIME;
import static org.sonar.api.PropertyType.PROPERTY_SET;
import static org.sonar.api.web.UserRole.USER;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_BRANCH;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_COMPONENT;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_KEYS;
import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.ACTION_VALUES;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_BRANCH;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_COMPONENT;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_KEYS;

public class ValuesAction implements SettingsWsAction {

@@ -84,7 +83,7 @@ public class ValuesAction implements SettingsWsAction {

@Override
public void define(WebService.NewController context) {
WebService.NewAction action = context.createAction(ACTION_VALUES)
WebService.NewAction action = context.createAction("values")
.setDescription("List settings values.<br>" +
"If no value has been set for a setting, then the default value is returned.<br>" +
"Requires 'Browse' permission when a component is specified<br/>",
@@ -129,13 +128,13 @@ public class ValuesAction implements SettingsWsAction {
}

private static ValuesRequest toWsRequest(Request request) {
ValuesRequest.Builder builder = ValuesRequest.builder()
ValuesRequest result = new ValuesRequest()
.setComponent(request.param(PARAM_COMPONENT))
.setBranch(request.param(PARAM_BRANCH));
if (request.hasParam(PARAM_KEYS)) {
builder.setKeys(request.paramAsStrings(PARAM_KEYS));
result.setKeys(request.paramAsStrings(PARAM_KEYS));
}
return builder.build();
return result;
}

private Set<String> loadKeys(ValuesRequest valuesRequest) {

+ 7
- 10
server/sonar-server/src/main/java/org/sonar/server/ws/DeprecatedPropertiesWsFilter.java View File

@@ -42,14 +42,11 @@ import org.sonar.server.property.ws.IndexAction;
import static com.google.common.base.Strings.isNullOrEmpty;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.sonar.server.property.ws.PropertiesWs.CONTROLLER_PROPERTIES;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.ACTION_RESET;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.ACTION_SET;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.CONTROLLER_SETTINGS;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_COMPONENT;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_KEY;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_KEYS;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_VALUE;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_VALUES;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_COMPONENT;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_KEY;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_KEYS;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_VALUE;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_VALUES;

/**
* This filter is used to execute deprecated api/properties WS, that were using REST
@@ -230,14 +227,14 @@ public class DeprecatedPropertiesWsFilter extends ServletFilter {
additionalMultiParams.putAll(PARAM_VALUES, values);
}
addParameterIfPresent(PARAM_COMPONENT, component);
redirectedPath = CONTROLLER_SETTINGS + SEPARATOR + ACTION_SET;
redirectedPath = "api/settings/set";
redirectedMethod = "POST";
}

private void redirectToReset(Optional<String> key, Optional<String> component) {
addParameterIfPresent(PARAM_KEYS, key);
addParameterIfPresent(PARAM_COMPONENT, component);
redirectedPath = CONTROLLER_SETTINGS + SEPARATOR + ACTION_RESET;
redirectedPath = "api/settings/reset";
redirectedMethod = "POST";
}


+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/setting/ws/EncryptActionTest.java View File

@@ -40,7 +40,7 @@ import org.sonarqube.ws.Settings.EncryptWsResponse;

import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.test.JsonAssert.assertJson;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_VALUE;
import static org.sonarqube.ws.client.settings.SettingsWsParameters.PARAM_VALUE;

public class EncryptActionTest {
@Rule

+ 1
- 1
sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java View File

@@ -35,7 +35,7 @@ import org.sonarqube.ws.client.qualitygates.QualitygatesService;
import org.sonarqube.ws.client.qualityprofile.QualityProfilesService;
import org.sonarqube.ws.client.roots.RootsService;
import org.sonarqube.ws.client.rule.RulesService;
import org.sonarqube.ws.client.setting.SettingsService;
import org.sonarqube.ws.client.settings.SettingsService;
import org.sonarqube.ws.client.system.SystemService;
import org.sonarqube.ws.client.user.UsersService;
import org.sonarqube.ws.client.usergroup.UserGroupsService;

+ 1
- 1
sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java View File

@@ -35,7 +35,7 @@ import org.sonarqube.ws.client.qualitygates.QualitygatesService;
import org.sonarqube.ws.client.qualityprofile.QualityProfilesService;
import org.sonarqube.ws.client.roots.RootsService;
import org.sonarqube.ws.client.rule.RulesService;
import org.sonarqube.ws.client.setting.SettingsService;
import org.sonarqube.ws.client.settings.SettingsService;
import org.sonarqube.ws.client.system.SystemService;
import org.sonarqube.ws.client.user.UsersService;
import org.sonarqube.ws.client.usergroup.UserGroupsService;

+ 4
- 4
tests/src/test/java/org/sonarqube/tests/settings/DeprecatedPropertiesWsTest.java View File

@@ -44,8 +44,8 @@ import org.junit.Test;
import org.sonarqube.ws.client.GetRequest;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.WsResponse;
import org.sonarqube.ws.client.setting.SetRequest;
import org.sonarqube.ws.client.setting.SettingsService;
import org.sonarqube.ws.client.settings.SetRequest;
import org.sonarqube.ws.client.settings.SettingsService;
import util.user.UserRule;

import static java.net.URLEncoder.encode;
@@ -309,11 +309,11 @@ public class DeprecatedPropertiesWsTest {
}

private static void setProperty(String key, String value, @Nullable String componentKey) {
adminSettingsService.set(SetRequest.builder().setKey(key).setValue(value).setComponent(componentKey).build());
adminSettingsService.set(new SetRequest().setKey(key).setValue(value).setComponent(componentKey));
}

private static void setProperty(String key, List<String> values, @Nullable String componentKey) {
adminSettingsService.set(SetRequest.builder().setKey(key).setValues(values).setComponent(componentKey).build());
adminSettingsService.set(new SetRequest().setKey(key).setValues(values).setComponent(componentKey));
}

private static List<Properties.Property> getProperties(@Nullable String componentKey) {

+ 5
- 5
tests/src/test/java/org/sonarqube/tests/settings/EmailsTest.java View File

@@ -35,11 +35,12 @@ import org.sonarqube.tests.Category1Suite;
import org.sonarqube.qa.util.Tester;
import org.sonarqube.ws.Settings;
import org.sonarqube.ws.client.PostRequest;
import org.sonarqube.ws.client.setting.ValuesRequest;
import org.sonarqube.ws.client.settings.ValuesRequest;
import org.subethamail.wiser.Wiser;
import org.subethamail.wiser.WiserMessage;

import static java.lang.String.format;
import static java.util.Arrays.asList;
import static junit.framework.TestCase.fail;
import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric;
@@ -79,10 +80,9 @@ public class EmailsTest {
public void update_email_settings() throws Exception {
updateEmailSettings("localhost", "42", "noreply@email.com", "The Devil", "[EMAIL]", "ssl", "john", "123456");

Settings.ValuesWsResponse response = tester.settings().service().values(ValuesRequest.builder()
.setKeys("email.smtp_host.secured", "email.smtp_port.secured", "email.smtp_secure_connection.secured", "email.smtp_username.secured", "email.smtp_password.secured",
"email.from", "email.fromName", "email.prefix")
.build());
Settings.ValuesWsResponse response = tester.settings().service().values(new ValuesRequest()
.setKeys(asList("email.smtp_host.secured", "email.smtp_port.secured", "email.smtp_secure_connection.secured", "email.smtp_username.secured", "email.smtp_password.secured",
"email.from", "email.fromName", "email.prefix")));

assertThat(response.getSettingsList()).extracting(Settings.Setting::getKey, Settings.Setting::getValue)
.containsOnly(

+ 12
- 15
tests/src/test/java/org/sonarqube/tests/settings/PropertySetsTest.java View File

@@ -20,7 +20,6 @@
package org.sonarqube.tests.settings;

import com.sonar.orchestrator.Orchestrator;
import org.sonarqube.tests.Category1Suite;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
@@ -30,15 +29,15 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.sonarqube.ws.Settings;
import org.sonarqube.ws.client.setting.SetRequest;
import org.sonarqube.ws.client.setting.SettingsService;
import org.sonarqube.ws.client.setting.ValuesRequest;
import org.sonarqube.qa.util.pageobjects.Navigation;
import org.sonarqube.qa.util.pageobjects.settings.SettingsPage;
import org.sonarqube.tests.Category1Suite;
import org.sonarqube.ws.Settings;
import org.sonarqube.ws.client.settings.SetRequest;
import org.sonarqube.ws.client.settings.SettingsService;
import org.sonarqube.ws.client.settings.ValuesRequest;
import util.user.UserRule;

import static com.google.common.collect.Lists.newArrayList;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.entry;
@@ -109,12 +108,11 @@ public class PropertySetsTest {

@Test
public void edit_property_set() {
SETTINGS.set(SetRequest.builder()
SETTINGS.set(new SetRequest()
.setKey("sonar.test.jira.servers")
.setFieldValues(newArrayList(
.setFieldValues(asList(
"{\"key\":\"jira1\", \"url\":\"http://jira1\", \"port\":\"12345\"}",
"{\"key\":\"jira2\", \"url\":\"http://jira2\", \"port\":\"54321\"}"))
.build());
"{\"key\":\"jira2\", \"url\":\"http://jira2\", \"port\":\"54321\"}")));

assertPropertySet("sonar.test.jira.servers",
asList(entry("key", "jira1"), entry("url", "http://jira1"), entry("port", "12345")),
@@ -123,14 +121,13 @@ public class PropertySetsTest {

@Test
public void delete_property_set() throws Exception {
SETTINGS.set(SetRequest.builder()
SETTINGS.set(new SetRequest()
.setKey("sonar.test.jira.servers")
.setFieldValues(newArrayList("{\"url\":\"http://jira1\"}", "{\"port\":\"12345\"}"))
.build());
.setFieldValues(asList("{\"url\":\"http://jira1\"}", "{\"port\":\"12345\"}")));

resetSettings(orchestrator, null, "sonar.test.jira.servers");

assertThat(SETTINGS.values(ValuesRequest.builder().setKeys("sonar.test.jira.servers").build()).getSettingsList()).isEmpty();
assertThat(SETTINGS.values(new ValuesRequest().setKeys(asList("sonar.test.jira.servers"))).getSettingsList()).isEmpty();
}

private void assertPropertySet(String baseSettingKey, List<Map.Entry<String, String>>... fieldsValues) {
@@ -144,7 +141,7 @@ public class PropertySetsTest {
}

private Settings.Setting getSetting(String key) {
Settings.ValuesWsResponse response = SETTINGS.values(ValuesRequest.builder().setKeys(key).build());
Settings.ValuesWsResponse response = SETTINGS.values(new ValuesRequest().setKeys(asList(key)));
List<Settings.Setting> settings = response.getSettingsList();
assertThat(settings).hasSize(1);
return settings.get(0);

+ 24
- 24
tests/src/test/java/org/sonarqube/tests/settings/SettingsTest.java View File

@@ -21,9 +21,8 @@ package org.sonarqube.tests.settings;

import com.google.common.collect.ImmutableMap;
import com.sonar.orchestrator.Orchestrator;
import org.junit.rules.RuleChain;
import org.sonarqube.tests.Category1Suite;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import javax.annotation.CheckForNull;
import org.apache.commons.io.FileUtils;
@@ -32,15 +31,17 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.rules.RuleChain;
import org.sonarqube.tests.Category1Suite;
import org.sonarqube.ws.Settings;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.permission.AddGroupWsRequest;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
import org.sonarqube.ws.client.permission.RemoveGroupWsRequest;
import org.sonarqube.ws.client.setting.ResetRequest;
import org.sonarqube.ws.client.setting.SetRequest;
import org.sonarqube.ws.client.setting.SettingsService;
import org.sonarqube.ws.client.setting.ValuesRequest;
import org.sonarqube.ws.client.settings.ResetRequest;
import org.sonarqube.ws.client.settings.SetRequest;
import org.sonarqube.ws.client.settings.SettingsService;
import org.sonarqube.ws.client.settings.ValuesRequest;
import util.user.UserRule;

import static java.util.Arrays.asList;
@@ -113,7 +114,7 @@ public class SettingsTest {
*/
@Test
public void global_property_change_extension_point() throws IOException {
adminSettingsService.set(SetRequest.builder().setKey("globalPropertyChange.received").setValue("NEWVALUE").build());
adminSettingsService.set(new SetRequest().setKey("globalPropertyChange.received").setValue("NEWVALUE"));
assertThat(FileUtils.readFileToString(orchestrator.getServer().getWebLogs()))
.contains("Received change: [key=globalPropertyChange.received, newValue=NEWVALUE]");
}
@@ -127,7 +128,7 @@ public class SettingsTest {

@Test
public void set_setting() {
adminSettingsService.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build());
adminSettingsService.set(new SetRequest().setKey(PLUGIN_SETTING_KEY).setValue("some value"));

String value = getSetting(PLUGIN_SETTING_KEY, anonymousSettingsService).getValue();
assertThat(value).isEqualTo("some value");
@@ -135,32 +136,32 @@ public class SettingsTest {

@Test
public void remove_setting() {
adminSettingsService.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build());
adminSettingsService.set(SetRequest.builder().setKey("sonar.links.ci").setValue("http://localhost").build());
adminSettingsService.set(new SetRequest().setKey(PLUGIN_SETTING_KEY).setValue("some value"));
adminSettingsService.set(new SetRequest().setKey("sonar.links.ci").setValue("http://localhost"));

adminSettingsService.reset(ResetRequest.builder().setKeys(PLUGIN_SETTING_KEY, "sonar.links.ci").build());
adminSettingsService.reset(new ResetRequest().setKeys(Arrays.asList(PLUGIN_SETTING_KEY, "sonar.links.ci")));
assertThat(getSetting(PLUGIN_SETTING_KEY, anonymousSettingsService).getValue()).isEqualTo("aDefaultValue");
assertThat(getSetting("sonar.links.ci", anonymousSettingsService)).isNull();
}

@Test
public void hidden_setting() {
adminSettingsService.set(SetRequest.builder().setKey("hidden").setValue("test").build());
adminSettingsService.set(new SetRequest().setKey("hidden").setValue("test"));
assertThat(getSetting("hidden", anonymousSettingsService).getValue()).isEqualTo("test");
}

@Test
public void secured_setting() {
adminSettingsService.set(SetRequest.builder().setKey("setting.secured").setValue("test").build());
adminSettingsService.set(new SetRequest().setKey("setting.secured").setValue("test"));
assertThat(getSetting("setting.secured", anonymousSettingsService)).isNull();
// assertThat(getSetting("setting.secured", userSettingsService)).isNull();
// assertThat(getSetting("setting.secured", userSettingsService)).isNull();
assertThat(getSetting("setting.secured", scanSettingsService).getValue()).isEqualTo("test");
assertThat(getSetting("setting.secured", adminSettingsService).getValue()).isEqualTo("test");
}

@Test
public void license_setting() {
adminSettingsService.set(SetRequest.builder().setKey("setting.license.secured").setValue("test").build());
adminSettingsService.set(new SetRequest().setKey("setting.license.secured").setValue("test"));
assertThat(getSetting("setting.license.secured", anonymousSettingsService)).isNull();
assertThat(getSetting("setting.license.secured", userSettingsService).getValue()).isEqualTo("test");
assertThat(getSetting("setting.license.secured", scanSettingsService).getValue()).isEqualTo("test");
@@ -169,16 +170,15 @@ public class SettingsTest {

@Test
public void multi_values_setting() throws Exception {
adminSettingsService.set(SetRequest.builder().setKey("multi").setValues(asList("value1", "value2", "value3")).build());
adminSettingsService.set(new SetRequest().setKey("multi").setValues(asList("value1", "value2", "value3")));
assertThat(getSetting("multi", anonymousSettingsService).getValues().getValuesList()).containsOnly("value1", "value2", "value3");
}

@Test
public void property_set_setting() throws Exception {
adminSettingsService.set(SetRequest.builder().setKey("sonar.jira").setFieldValues(asList(
adminSettingsService.set(new SetRequest().setKey("sonar.jira").setFieldValues(asList(
"{\"key\":\"jira1\", \"url\":\"http://jira1\", \"port\":\"12345\", \"type\":\"A\"}",
"{\"key\":\"jira2\", \"url\":\"http://jira2\", \"port\":\"54321\"}"))
.build());
"{\"key\":\"jira2\", \"url\":\"http://jira2\", \"port\":\"54321\"}")));

assertThat(getSetting("sonar.jira", anonymousSettingsService).getFieldValues().getFieldValuesList()).extracting(Settings.FieldValues.Value::getValue).containsOnly(
ImmutableMap.of("key", "jira1", "url", "http://jira1", "port", "12345", "type", "A"),
@@ -187,23 +187,23 @@ public class SettingsTest {

@Test
public void return_defined_settings_when_no_key_provided() throws Exception {
adminSettingsService.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build());
adminSettingsService.set(SetRequest.builder().setKey("hidden").setValue("test").build());
adminSettingsService.set(new SetRequest().setKey(PLUGIN_SETTING_KEY).setValue("some value"));
adminSettingsService.set(new SetRequest().setKey("hidden").setValue("test"));

assertThat(adminSettingsService.values(ValuesRequest.builder().build()).getSettingsList())
assertThat(adminSettingsService.values(new ValuesRequest()).getSettingsList())
.extracting(Setting::getKey)
.contains(PLUGIN_SETTING_KEY, "hidden", "sonar.forceAuthentication",
// Settings for scanner
"sonar.core.startTime");

assertThat(adminSettingsService.values(ValuesRequest.builder().build()).getSettingsList())
assertThat(adminSettingsService.values(new ValuesRequest()).getSettingsList())
.extracting(Setting::getKey, Setting::getValue)
.contains(tuple(PLUGIN_SETTING_KEY, "some value"), tuple("hidden", "test"));
}

@CheckForNull
private static Setting getSetting(String key, SettingsService settingsService) {
ValuesWsResponse response = settingsService.values(ValuesRequest.builder().setKeys(key).build());
ValuesWsResponse response = settingsService.values(new ValuesRequest().setKeys(asList(key)));
List<Settings.Setting> settings = response.getSettingsList();
return settings.isEmpty() ? null : settings.get(0);
}

+ 6
- 4
tests/src/test/java/org/sonarqube/tests/webhook/WebhooksTest.java View File

@@ -21,6 +21,8 @@ package org.sonarqube.tests.webhook;

import com.sonar.orchestrator.Orchestrator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -35,8 +37,8 @@ import org.sonarqube.ws.Webhooks;
import org.sonarqube.ws.client.HttpException;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.project.DeleteRequest;
import org.sonarqube.ws.client.setting.ResetRequest;
import org.sonarqube.ws.client.setting.SetRequest;
import org.sonarqube.ws.client.settings.ResetRequest;
import org.sonarqube.ws.client.settings.SetRequest;
import org.sonarqube.ws.client.webhooks.DeliveriesRequest;
import org.sonarqube.ws.client.webhooks.DeliveryRequest;
import util.ItUtils;
@@ -272,10 +274,10 @@ public class WebhooksTest {

private void setProperty(@Nullable String componentKey, String key, @Nullable String value) {
if (value == null) {
ResetRequest req = ResetRequest.builder().setKeys(key).setComponent(componentKey).build();
ResetRequest req = new ResetRequest().setKeys(Collections.singletonList(key)).setComponent(componentKey);
adminWs.settings().reset(req);
} else {
SetRequest req = SetRequest.builder().setKey(key).setValue(value).setComponent(componentKey).build();
SetRequest req = new SetRequest().setKey(key).setValue(value).setComponent(componentKey);
adminWs.settings().set(req);
}
}

+ 5
- 5
tests/src/test/java/util/ItUtils.java View File

@@ -73,8 +73,8 @@ import org.sonarqube.ws.client.WsClientFactories;
import org.sonarqube.ws.client.component.ShowWsRequest;
import org.sonarqube.ws.client.measure.ComponentWsRequest;
import org.sonarqube.ws.client.qualityprofile.RestoreWsRequest;
import org.sonarqube.ws.client.setting.ResetRequest;
import org.sonarqube.ws.client.setting.SetRequest;
import org.sonarqube.ws.client.settings.ResetRequest;
import org.sonarqube.ws.client.settings.SetRequest;

import static com.google.common.base.Preconditions.checkState;
import static com.sonar.orchestrator.container.Server.ADMIN_LOGIN;
@@ -267,9 +267,9 @@ public class ItUtils {
@Deprecated
public static void setServerProperty(Orchestrator orchestrator, @Nullable String componentKey, String key, @Nullable String value) {
if (value == null) {
newAdminWsClient(orchestrator).settings().reset(ResetRequest.builder().setKeys(key).setComponent(componentKey).build());
newAdminWsClient(orchestrator).settings().reset(new ResetRequest().setKeys(asList(key)).setComponent(componentKey));
} else {
newAdminWsClient(orchestrator).settings().set(SetRequest.builder().setKey(key).setValue(value).setComponent(componentKey).build());
newAdminWsClient(orchestrator).settings().set(new SetRequest().setKey(key).setValue(value).setComponent(componentKey));
}
}

@@ -289,7 +289,7 @@ public class ItUtils {
@Deprecated
public static void resetSettings(Orchestrator orchestrator, @Nullable String componentKey, String... keys) {
if (keys.length > 0) {
newAdminWsClient(orchestrator).settings().reset(ResetRequest.builder().setKeys(keys).setComponent(componentKey).build());
newAdminWsClient(orchestrator).settings().reset(new ResetRequest().setKeys(Arrays.asList(keys)).setComponent(componentKey));
}
}


Loading…
Cancel
Save