@SuppressWarnings("deprecation") @Override public void onLoaded() { for (AbstractProject<?, ?> p : Jenkins.getInstance().getAllItems(AbstractProject.class)) { try { ArtifactArchiver aa = p.getPublishersList().get(ArtifactArchiver.class); if (aa != null && aa.latestOnly != null) { if (aa.latestOnly) { BuildDiscarder bd = p.getBuildDiscarder(); if (bd instanceof LogRotator) { LogRotator lr = (LogRotator) bd; if (lr.getArtifactNumToKeep() == -1) { p.setBuildDiscarder( new LogRotator( lr.getDaysToKeep(), lr.getNumToKeep(), lr.getArtifactDaysToKeep(), 1)); } else { LOG.log( Level.WARNING, "will not clobber artifactNumToKeep={0} in {1}", new Object[] {lr.getArtifactNumToKeep(), p}); } } else if (bd == null) { p.setBuildDiscarder(new LogRotator(-1, -1, -1, 1)); } else { LOG.log( Level.WARNING, "unrecognized BuildDiscarder {0} in {1}", new Object[] {bd, p}); } } aa.latestOnly = null; p.save(); } Fingerprinter f = p.getPublishersList().get(Fingerprinter.class); if (f != null && f.getRecordBuildArtifacts()) { f.recordBuildArtifacts = null; if (aa != null) { aa.setFingerprint(true); } if (f.getTargets().isEmpty()) { // no other reason to be here p.getPublishersList().remove(f); } p.save(); } } catch (IOException x) { LOG.log(Level.WARNING, "could not migrate " + p, x); } } }