diff --git a/core/src/main/java/hudson/model/Hudson.java b/core/src/main/java/hudson/model/Hudson.java index 7b056b5570959b62370a3d5c38636e2640ae8120..38e8ca849720aae6879c648f62d8023b12590d6a 100644 --- a/core/src/main/java/hudson/model/Hudson.java +++ b/core/src/main/java/hudson/model/Hudson.java @@ -2068,6 +2068,24 @@ public final class Hudson extends Node implements ItemGroup, Stapl return item; } + /** + * Overwrites the existing item by new one. + * + *

+ * This is a short cut for deleting an existing job and adding a new one. + */ + public synchronized void putItem(TopLevelItem item) throws IOException, InterruptedException { + String name = item.getName(); + TopLevelItem old = items.get(name); + if (old ==item) return; // noop + + checkPermission(Item.CREATE); + if (old!=null) + old.delete(); + items.put(name,item); + ItemListener.fireOnCreated(item); + } + /** * Creates a new job. *