Job has some fairly complex infrastructure for handling renames:
- the special textbox in configure.jelly
- the handling in doConfigSubmit, including ProjectNamingStrategy integration, Apply vs. Save logic (including the tricky
JENKINS-17401fix), and the redirect
- rename.jelly (and rename.properties)
- doDoRename, with more checks and redirects
This code should be pulled up into AbstractItem for easy reuse, with some hooks for domain-specific validation (such as Job.isBuilding).