@@ -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)); | |||
} | |||
} | |||
@@ -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; |
@@ -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) { |
@@ -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) { |
@@ -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) { |
@@ -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) { |
@@ -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 | |||
} | |||
} |
@@ -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 { |
@@ -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) { |
@@ -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"; | |||
} | |||
@@ -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 |
@@ -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; |
@@ -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; |
@@ -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) { |
@@ -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( |
@@ -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); |
@@ -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); | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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)); | |||
} | |||
} | |||