Skip to content
Prev Previous commit
Next Next commit
Remove general plugin settings from plugins that don't require them
Only Gerrit uses plugin level settings for now.
  • Loading branch information
juhasipo committed Oct 22, 2016
commit e043c4c05a520aed4aa88d36c60e906e1dc509c7
Original file line number Diff line number Diff line change
Expand Up @@ -516,12 +516,17 @@ public String responseBody() {
}

public GeneralPluginSettings getPluginSettings() {
DefaultGoApiRequest request =
new DefaultGoApiRequest(GET_PLUGIN_SETTINGS, "1.0", provider.getPluginId());
request.setRequestBody("{\"plugin-id\": \"" + provider.getPluginId().getExtension() + "\"}");
String response = goApplicationAccessor.submit(request).responseBody();
Map<String, Object> settings = JSONUtils.fromJSON(response, Map.class);

return provider.getGeneralConfigurationView().getSettings(settings);
if (provider.getGeneralConfigurationView().hasConfigurationView()) {
DefaultGoApiRequest request =
new DefaultGoApiRequest(GET_PLUGIN_SETTINGS, "1.0", provider.getPluginId());
request.setRequestBody("{\"plugin-id\": \"" + provider.getPluginId().getExtension() + "\"}");
String response = goApplicationAccessor.submit(request).responseBody();
Map<String, Object> settings = JSONUtils.fromJSON(response, Map.class);
return provider.getGeneralConfigurationView().getSettings(settings);
} else {
return provider
.getGeneralConfigurationView()
.getSettings(Collections.<String, Object>emptyMap());
}
}
}
10 changes: 7 additions & 3 deletions src/main/java/in/ashwanthkumar/gocd/github/jsonapi/Server.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.thoughtworks.go.plugin.api.logging.Logger;
import in.ashwanthkumar.gocd.github.settings.general.GeneralPluginSettings;
import in.ashwanthkumar.gocd.github.settings.general.GoApiSettings;

import javax.xml.bind.DatatypeConverter;
import java.io.IOException;
Expand Down Expand Up @@ -43,8 +44,9 @@ public <T> T getResourceAs(URL url, Class<T> type)

HttpURLConnection request = httpConnectionUtil.getConnection(normalizedUrl);

final String login = settings.getGoApiUsername();
final String password = settings.getGoApiPassword();
GoApiSettings goApiSettings = (GoApiSettings) settings;
final String login = goApiSettings.getGoApiUsername();
final String password = goApiSettings.getGoApiPassword();
// Add in our HTTP authorization credentials if we have them.
if (!isEmpty(login) && !isEmpty(password)) {
String userpass = login + ":" + password;
Expand All @@ -60,7 +62,9 @@ public <T> T getResourceAs(URL url, Class<T> type)

public PipelineStatus getPipelineStatus(String pipelineName)
throws MalformedURLException, IOException {
final String apiHost = settings.getGoApiHost();
GoApiSettings goApiSettings = (GoApiSettings) settings;

final String apiHost = goApiSettings.getGoApiHost();
URL url = new URL(String.format("%s/go/api/pipelines/%s/status",
apiHost, pipelineName));

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package in.ashwanthkumar.gocd.github.provider.gerrit;

import in.ashwanthkumar.gocd.github.settings.general.DefaultGeneralPluginSettings;
import in.ashwanthkumar.gocd.github.settings.general.GeneralPluginConfigurationView;
import in.ashwanthkumar.gocd.github.settings.general.GeneralPluginSettings;
import in.ashwanthkumar.gocd.github.util.FieldFactory;
Expand All @@ -13,7 +12,7 @@ public class GerritPluginConfigurationView implements GeneralPluginConfiguration

@Override
public String templateName() {
return "/views/plugin.template.html";
return "/views/gerrit.plugin.template.html";
}

@Override
Expand All @@ -30,8 +29,9 @@ public boolean hasConfigurationView() {
return true;
}

@Override
public GeneralPluginSettings getSettings(Map<String, Object> rawSettings) {
GeneralPluginSettings settings = new DefaultGeneralPluginSettings(
GerritPluginSettings settings = new GerritPluginSettings(
(String)rawSettings.get("go_api_host"),
(String)rawSettings.get("go_api_username"),
(String)rawSettings.get("go_api_password")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package in.ashwanthkumar.gocd.github.provider.gerrit;

import in.ashwanthkumar.gocd.github.settings.general.GeneralPluginSettings;
import in.ashwanthkumar.gocd.github.settings.general.GoApiSettings;

public class GerritPluginSettings implements GoApiSettings, GeneralPluginSettings {

private String goApiHost;
private String goApiUsername;
private String goApiPassword;

public GerritPluginSettings(String goApiHost, String goApiUsername, String goApiPassword) {
this.goApiHost = goApiHost;
this.goApiUsername = goApiUsername;
this.goApiPassword = goApiPassword;
}

@Override
public String getGoApiHost() {
return goApiHost;
}

@Override
public String getGoApiUsername() {
return goApiUsername;
}

@Override
public String getGoApiPassword() {
return goApiPassword;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,4 @@

public class DefaultGeneralPluginSettings implements GeneralPluginSettings {

private String goApiHost;
private String goApiUsername;
private String goApiPassword;

public DefaultGeneralPluginSettings() {
}

public DefaultGeneralPluginSettings(String goApiHost, String goApiUsername, String goApiPassword) {
this.goApiHost = goApiHost;
this.goApiUsername = goApiUsername;
this.goApiPassword = goApiPassword;
}

@Override
public String getGoApiHost() {
return goApiHost;
}

@Override
public String getGoApiUsername() {
return goApiUsername;
}

@Override
public String getGoApiPassword() {
return goApiPassword;
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
package in.ashwanthkumar.gocd.github.settings.general;

public interface GeneralPluginSettings {

String getGoApiHost();
String getGoApiUsername();
String getGoApiPassword();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package in.ashwanthkumar.gocd.github.settings.general;

public interface GoApiSettings {

String getGoApiHost();
String getGoApiUsername();
String getGoApiPassword();
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,5 @@ public ScmPluginSettings getSettings(Map<String, String> rawSettings) {

return settings;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public void shouldReturnCorrectScmSettingsFields() throws Exception {
public void shouldReturnCorrectGeneralSettingsTemplate() throws Exception {
PluginConfigurationView generalConfigurationView = getGeneralView();

assertThat(generalConfigurationView.templateName(), is("/views/plugin.template.html"));
assertThat(generalConfigurationView.templateName(), is("/views/gerrit.plugin.template.html"));
assertThat(generalConfigurationView.hasConfigurationView(), is(true));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ public void shouldReturnCorrectGeneralSettingsFields() throws Exception {
PluginConfigurationView generalConfigurationView = getGeneralView();

assertThat(generalConfigurationView.fields().size(), is(0));

}

@Override
Expand Down