class JobConfigurationForRunningParallelStepsWithVirtualThreads {

	@Bean
	public Step step1(JobRepository jobRepository, JdbcTransactionManager transactionManager) {
		return createStep("step1", jobRepository, transactionManager);
	}

	@Bean
	public Step step2(JobRepository jobRepository, JdbcTransactionManager transactionManager) {
		return createStep("step2", jobRepository, transactionManager);
	}

	@Bean
	public Job job(JobRepository jobRepository, Step step1, Step step2) {<FILL_FUNCTION_BODY>}

	private Step createStep(String stepName, JobRepository jobRepository, JdbcTransactionManager transactionManager) {
		return new StepBuilder(stepName, jobRepository).tasklet((contribution, chunkContext) -> {
			System.out.println(Thread.currentThread() + ": running " + stepName);
			return RepeatStatus.FINISHED;
		}, transactionManager).build();
	}

}

		Flow flow1 = new FlowBuilder<Flow>("subflow1").from(step1).end();
		Flow flow2 = new FlowBuilder<Flow>("subflow2").from(step2).end();

		Flow splitFlow = new FlowBuilder<Flow>("splitflow").split(new VirtualThreadTaskExecutor("spring-batch-"))
			.add(flow1, flow2)
			.build();

		return new JobBuilder("job", jobRepository).start(splitFlow).build().build();
	
<no_super_class>