diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index caead938c1..c04b8a1e59 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -36,6 +36,7 @@ import hudson.model.UpdateCenter; import hudson.model.UpdateSite; import hudson.util.CyclicGraphDetector; import hudson.util.CyclicGraphDetector.CycleDetectedException; +import hudson.util.PersistedList; import hudson.util.Service; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; @@ -494,6 +495,24 @@ public abstract class PluginManager extends AbstractModelObject { rsp.sendRedirect("../updateCenter/"); } + /** + * Bare-minimum configuration mechanism to change the update center. + */ + public HttpResponse doSiteConfigure(@QueryParameter String site) throws IOException { + Hudson hudson = Hudson.getInstance(); + hudson.checkPermission(Hudson.ADMINISTER); + UpdateCenter uc = hudson.getUpdateCenter(); + PersistedList sites = uc.getSites(); + for (UpdateSite s : sites) { + if (s.getId().equals("default")) + sites.remove(s); + } + sites.add(new UpdateSite("default",site)); + + return HttpResponses.redirectToContextRoot(); + } + + public HttpResponse doProxyConfigure( @QueryParameter("proxy.server") String server, @QueryParameter("proxy.port") String port, diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index 9588790cb0..58c69d7cda 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -193,6 +193,13 @@ public class UpdateCenter extends AbstractModelObject implements Saveable { return sites; } + public UpdateSite getSite(String id) { + for (UpdateSite site : sites) + if (site.getId().equals(id)) + return site; + return null; + } + /** * Gets the string representing how long ago the data was obtained. * Will be the newest of all {@link UpdateSite}s. diff --git a/core/src/main/resources/hudson/PluginManager/advanced.jelly b/core/src/main/resources/hudson/PluginManager/advanced.jelly index d6a922bf78..3a3f23620b 100644 --- a/core/src/main/resources/hudson/PluginManager/advanced.jelly +++ b/core/src/main/resources/hudson/PluginManager/advanced.jelly @@ -69,6 +69,16 @@ THE SOFTWARE. + +

${%Update Site}

+ + + + + + + +