/** * Alternative constructor for copying an existing {@link DeclarativeJobPropertyTrackerAction}'s contents directly. * * @param copyFrom a non-null {@link DeclarativeJobPropertyTrackerAction} */ public DeclarativeJobPropertyTrackerAction(@Nonnull DeclarativeJobPropertyTrackerAction copyFrom) { this.jobProperties.addAll(copyFrom.getJobProperties()); this.triggers.addAll(copyFrom.getTriggers()); this.parameters.addAll(copyFrom.getParameters()); this.options.addAll(copyFrom.getOptions()); }
@LocalData @Test public void trackerPropertyUpgrade() throws Exception { WorkflowJob p = j.jenkins.getItemByFullName("trackerPropertyUpgrade", WorkflowJob.class); assertNotNull(p); WorkflowRun b1 = p.getLastBuild(); assertNotNull(b1); assertNotNull(b1.getAction(DeclarativeJobPropertyTrackerAction.class)); assertNull(p.getAction(DeclarativeJobPropertyTrackerAction.class)); p.addProperty(new DisableConcurrentBuildsJobProperty()); p.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("simpleParameters"), true)); WorkflowRun b2 = j.buildAndAssertSuccess(p); assertNull(b2.getAction(DeclarativeJobPropertyTrackerAction.class)); assertNull(p.getProperty(BuildDiscarderProperty.class)); ParametersDefinitionProperty parameters = p.getProperty(ParametersDefinitionProperty.class); assertNotNull(parameters); assertNotNull(parameters.getParameterDefinition("flag")); DeclarativeJobPropertyTrackerAction action2 = p.getAction(DeclarativeJobPropertyTrackerAction.class); assertNotNull(action2); assertFalse(action2.getParameters().isEmpty()); assertEquals("flag", action2.getParameters().iterator().next()); p.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("propsTriggersParamsRemoved"), true)); WorkflowRun b3 = j.buildAndAssertSuccess(p); assertNull(b3.getAction(DeclarativeJobPropertyTrackerAction.class)); assertNull(p.getProperty(BuildDiscarderProperty.class)); assertNull(p.getProperty(ParametersDefinitionProperty.class)); DeclarativeJobPropertyTrackerAction action3 = p.getAction(DeclarativeJobPropertyTrackerAction.class); assertNotNull(action3); assertTrue(action3.getParameters().isEmpty()); }
DeclarativeJobPropertyTrackerAction action2 = job.getAction(DeclarativeJobPropertyTrackerAction.class); assertNotNull(action2); assertTrue(action2.getParameters().isEmpty()); assertTrue(action3.getParameters().isEmpty());