package jenkins.mvn;
import hudson.Extension;
import jenkins.model.GlobalConfiguration;
import jenkins.model.GlobalConfigurationCategory;
import jenkins.tools.ToolConfigurationCategory;
import net.sf.json.JSONObject;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.StaplerRequest;
//as close as it gets to the global Maven Project configuration
@Extension(ordinal = 50) @Symbol("maven")
public class GlobalMavenConfig extends GlobalConfiguration {
private SettingsProvider settingsProvider;
private GlobalSettingsProvider globalSettingsProvider;
public GlobalMavenConfig() {
load();
}
@Override
public ToolConfigurationCategory getCategory() {
return GlobalConfigurationCategory.get(ToolConfigurationCategory.class);
}
@Override
public boolean configure(StaplerRequest req, JSONObject json) throws FormException {
req.bindJSON(this, json);
return true;
}
public void setGlobalSettingsProvider(GlobalSettingsProvider globalSettingsProvider) {
this.globalSettingsProvider = globalSettingsProvider;
save();
}
public void setSettingsProvider(SettingsProvider settingsProvider) {
this.settingsProvider = settingsProvider;
save();
}
public GlobalSettingsProvider getGlobalSettingsProvider() {
return globalSettingsProvider != null ? globalSettingsProvider : new DefaultGlobalSettingsProvider();
}
public SettingsProvider getSettingsProvider() {
return settingsProvider != null ? settingsProvider : new DefaultSettingsProvider();
}
public static GlobalMavenConfig get() {
return GlobalConfiguration.all().get(GlobalMavenConfig.class);
}
}