@Override
	public JobParameters getJobParameters(Properties properties) {

		final Properties localProperties;

		if (properties != null) {
			localProperties = properties;
		}
		else {
			localProperties = new Properties();
		}

		final boolean isRestart;

		if (localProperties.containsKey(IS_RESTART_JOB_PARAMETER_KEY)) {
			isRestart = Boolean.valueOf(localProperties.getProperty(IS_RESTART_JOB_PARAMETER_KEY));
		}
		else {
			isRestart = false;
		}

		if (this.makeParametersUnique && !isRestart) {

			if (localProperties.containsKey(UNIQUE_JOB_PARAMETER_KEY)) {
				throw new IllegalStateException(String.format(
						"Parameter '%s' is already used to identify uniqueness for the executing Batch job.",
						UNIQUE_JOB_PARAMETER_KEY));
			}

			localProperties.put(UNIQUE_JOB_PARAMETER_KEY, String.valueOf(Math.random()));
		}
		return super.getJobParameters(localProperties);
	}
If {@link #makeParametersUnique} is {@code true} the {@link JobParameter} with key
{@link #UNIQUE_JOB_PARAMETER_KEY} will be added with a random number value.

The method will ultimately call {@link DefaultJobParametersConverter#getJobParameters(Properties)}.

@param properties Can be null.
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/plugins/job/ExpandedJobParametersConverter.java