Skip to content

Commit 1d6700c

Browse files
use sonar.host.url (rather than sonar.core.serverBaseURL) for calling webservices
1 parent d04a1b6 commit 1d6700c

File tree

4 files changed

+34
-8
lines changed

4 files changed

+34
-8
lines changed

src/main/java/com/talanlabs/sonar/plugins/gitlab/GitLabPluginConfiguration.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public class GitLabPluginConfiguration {
5151
private final Settings settings;
5252
private final System2 system2;
5353
private final String baseUrl;
54+
private final String baseWsUrl;
5455

5556
public GitLabPluginConfiguration(Settings settings, System2 system2) {
5657
super();
@@ -59,13 +60,20 @@ public GitLabPluginConfiguration(Settings settings, System2 system2) {
5960
this.system2 = system2;
6061

6162
String tempBaseUrl = settings.hasKey(CoreProperties.SERVER_BASE_URL) ? settings.getString(CoreProperties.SERVER_BASE_URL) : settings.getString("sonar.host.url");
63+
this.baseUrl = sanitizeBaseUrl(tempBaseUrl);
64+
65+
String tempBaseWsUrl = settings.getString("sonar.host.url");
66+
this.baseWsUrl = sanitizeBaseUrl(tempBaseWsUrl);
67+
}
68+
69+
private static String sanitizeBaseUrl(String tempBaseUrl) {
6270
if (tempBaseUrl == null) {
63-
tempBaseUrl = "http://localhost:9090";
71+
tempBaseUrl = "http://localhost:9000";
6472
}
6573
if (!tempBaseUrl.endsWith("/")) {
6674
tempBaseUrl += "/";
6775
}
68-
this.baseUrl = tempBaseUrl;
76+
return tempBaseUrl;
6977
}
7078

7179
public String projectId() {
@@ -259,7 +267,18 @@ public PasswordAuthentication getPasswordAuthentication() {
259267
}
260268
}
261269

270+
/**
271+
* The base URL for user-facing links (usually sonar.core.serverBaseURL, when defined in the
272+
* SonarQube global configuration, or sonar.host.url otherwise).
273+
*/
262274
public String baseUrl() {
263275
return baseUrl;
264276
}
277+
278+
/**
279+
* The base URL for calling SonarQube web-services (usually sonar.host.url).
280+
*/
281+
public String baseWsUrl() {
282+
return baseWsUrl;
283+
}
265284
}

src/main/java/com/talanlabs/sonar/plugins/gitlab/SonarFacade.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public class SonarFacade {
6868
public SonarFacade(Settings settings, GitLabPluginConfiguration gitLabPluginConfiguration) {
6969
this.gitLabPluginConfiguration = gitLabPluginConfiguration;
7070

71-
HttpConnector httpConnector = HttpConnector.newBuilder().url(gitLabPluginConfiguration.baseUrl())
71+
HttpConnector httpConnector = HttpConnector.newBuilder().url(gitLabPluginConfiguration.baseWsUrl())
7272
.credentials(settings.getString(CoreProperties.LOGIN), settings.getString(CoreProperties.PASSWORD)).build();
7373

7474
wsClient = WsClientFactories.getDefault().newClient(httpConnector);

src/test/java/com/talanlabs/sonar/plugins/gitlab/GitLabPluginConfigurationTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,15 @@ public void before() {
5151
config = new GitLabPluginConfiguration(settings, new System2());
5252
}
5353

54+
@Test
55+
public void testBaseWsUrl() {
56+
Assertions.assertThat(config.baseWsUrl()).isEqualTo("http://localhost:9000/");
57+
58+
settings.setProperty("sonar.host.url", "http://myserver2/");
59+
config = new GitLabPluginConfiguration(settings, new System2());
60+
Assertions.assertThat(config.baseWsUrl()).isEqualTo("http://myserver2/");
61+
}
62+
5463
@Test
5564
public void testGlobal() {
5665
Assertions.assertThat(config.url()).isEqualTo("https://gitlab.com");

src/test/java/com/talanlabs/sonar/plugins/gitlab/SonarFacadeTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import org.junit.rules.TemporaryFolder;
3535
import org.sonar.api.CoreProperties;
3636
import org.sonar.api.batch.rule.Severity;
37-
import org.sonar.api.config.PropertyDefinition;
3837
import org.sonar.api.config.PropertyDefinitions;
3938
import org.sonar.api.config.Settings;
4039
import org.sonar.api.resources.Qualifiers;
@@ -60,10 +59,9 @@ public class SonarFacadeTest {
6059

6160
@Before
6261
public void prepare() throws IOException {
63-
settings = new Settings(new PropertyDefinitions(PropertyDefinition.builder(CoreProperties.SERVER_BASE_URL).name("Server base URL")
64-
.description("HTTP URL of this SonarQube server, such as <i>http://yourhost.yourdomain/sonar</i>. This value is used i.e. to create links in emails.")
65-
.category(CoreProperties.CATEGORY_GENERAL).defaultValue(CoreProperties.SERVER_BASE_URL_DEFAULT_VALUE).build()).addComponents(GitLabPlugin.definitions()));
66-
settings.setProperty(CoreProperties.SERVER_BASE_URL, String.format("http://%s:%d", sonar.getHostName(), sonar.getPort()));
62+
settings = new Settings(new PropertyDefinitions(GitLabPlugin.definitions()));
63+
settings.setProperty(CoreProperties.SERVER_BASE_URL, "http://whatever");
64+
settings.setProperty("sonar.host.url", String.format("http://%s:%d", sonar.getHostName(), sonar.getPort()));
6765
settings.setProperty(GitLabPlugin.GITLAB_QUERY_MAX_RETRY, 5);
6866

6967
projectDir = temp.newFolder();

0 commit comments

Comments
 (0)