class JavaCmdJobManagerDecorator extends AbstractKubernetesStepDecorator {

	@Override
	public FlinkPod decorateFlinkPod(FlinkPod flinkPod) {
		final JobManagerProcessSpec processSpec = JobManagerProcessUtils.processSpecFromConfigWithNewOptionToInterpretLegacyHeap(
			kubernetesJobManagerParameters.getFlinkConfiguration(),
			JobManagerOptions.TOTAL_PROCESS_MEMORY);
		final String startCommand = getJobManagerStartCommand(
			kubernetesJobManagerParameters.getFlinkConfiguration(),
			processSpec,
			kubernetesJobManagerParameters.getFlinkConfDirInPod(),
			kubernetesJobManagerParameters.getFlinkLogDirInPod(),
			kubernetesJobManagerParameters.hasLogback(),
			kubernetesJobManagerParameters.hasLog4j(),
			kubernetesJobManagerParameters.getEntrypointClass());

		final Container mainContainerWithStartCmd = new ContainerBuilder(flinkPod.getMainContainer())
			.withCommand(kubernetesJobManagerParameters.getContainerEntrypoint())
			.withArgs(Arrays.asList(NATIVE_KUBERNETES_COMMAND, startCommand))
			.build();

		return new FlinkPod.Builder(flinkPod)
			.withMainContainer(mainContainerWithStartCmd)
			.build();
	}

	public  JavaCmdJobManagerDecorator(KubernetesJobManagerParameters kubernetesJobManagerParameters);

}