/** * With a {@link BulkChange}, this will become just one save. */ public void testBulkChange() throws Exception { Point pt = new Point(); BulkChange bc = new BulkChange(pt); try { pt.set(0,0); } finally { bc.commit(); } assertEquals(1,pt.saveCount); }
public HttpResponse doUpdateSources(StaplerRequest req) throws IOException { Jenkins.getInstance().checkPermission(CONFIGURE_UPDATECENTER); if (req.hasParameter("remove")) { UpdateCenter uc = Jenkins.getInstance().getUpdateCenter(); BulkChange bc = new BulkChange(uc); try { for (String id : req.getParameterValues("sources")) uc.getSites().remove(uc.getById(id)); } finally { bc.commit(); } } else if (req.hasParameter("add")) return new HttpRedirect("addSite"); return new HttpRedirect("./sites"); }
/** * {@link BulkChange}s can be nested. */ public void testNestedBulkChange() throws Exception { Point pt = new Point(); Point _ = new Point(); BulkChange bc1 = new BulkChange(pt); try { BulkChange bc2 = new BulkChange(_); try { BulkChange bc3 = new BulkChange(pt); try { pt.set(0,0); } finally { bc3.commit(); } } finally { bc2.commit(); } pt.set(0,0); } finally { bc1.commit(); } assertEquals(1,pt.saveCount); }
public void save() throws IOException { if(BulkChange.contains(this)) return; saveCount++; }