return HttpResponses.plainText("Shutting down as soon as all jobs are complete");
@Override public HttpResponse doFoo() { return HttpResponses.plainText("overridden"); } }
@Restricted(DoNotUse.class) // accessed via REST API public HttpResponse doGenerateDirective(StaplerRequest req, @QueryParameter String json) throws Exception { // TODO is there not an easier way to do this? Maybe Descriptor.newInstancesFromHeteroList on a one-element JSONArray? JSONObject jsonO = JSONObject.fromObject(json); Jenkins j = Jenkins.getActiveInstance(); Class<?> c = j.getPluginManager().uberClassLoader.loadClass(jsonO.getString("stapler-class")); DirectiveDescriptor descriptor = (DirectiveDescriptor)j.getDescriptor(c.asSubclass(AbstractDirective.class)); if (descriptor == null) { return HttpResponses.plainText("<could not find " + c.getName() + ">"); } Object o; try { o = descriptor.newInstance(req, jsonO); } catch (RuntimeException x) { // e.g. IllegalArgumentException return HttpResponses.plainText(Functions.printThrowable(x)); } try { String groovy = descriptor.toIndentedGroovy((AbstractDirective)o); return HttpResponses.plainText(groovy); } catch (UnsupportedOperationException x) { LOGGER.log(Level.WARNING, "failed to render " + json, x); return HttpResponses.plainText(x.getMessage()); } }
@RequirePOST default HttpResponse doFoo() { return HttpResponses.plainText("default"); } }
public HttpResponse doUploadPlugin(StaplerRequest request) throws IOException, ServletException { if (!hudsonSecurityManager.hasPermission(Permission.HUDSON_ADMINISTER)) { return HttpResponses.forbidden(); } try { List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request); for (FileItem fileItem : items) { if (fileItem.getFieldName().equals("file")) { String fileName = FilenameUtils.getName(fileItem.getName()); if ("".equals(fileName) || !fileName.endsWith(".hpi")) { return new ErrorHttpResponse("File " + fileName + " may not be a plugin"); } File uploadedPluginFile = new File(pluginsDir, fileName); fileItem.write(uploadedPluginFile); InstalledPluginInfo uploadedPluginInfo = new InstalledPluginInfo(uploadedPluginFile); for (Dependency dep : uploadedPluginInfo.getDependencies()) { doInstallPlugin(dep.getShortName()); } return HttpResponses.plainText("Plugin " + fileName + " successfully uploaded."); } } } catch (Exception exc) { return new ErrorHttpResponse(exc.getLocalizedMessage()); } return new ErrorHttpResponse("Failed to upload plugin"); }
return HttpResponses.plainText(newJobName); } catch (IOException ex) { return new TeamUtils.ErrorHttpResponse("Faile to move the job " + jobName
return HttpResponses.plainText("Shutting down as soon as all jobs are complete");