class BuildProjectGenerationConfiguration {

	@Bean
	@ConditionalOnPlatformVersion("[2.2.0.M5,2.4.0-SNAPSHOT)")
	public BuildCustomizer<Build> junit5TestStarterContributor() {<FILL_FUNCTION_BODY>}

	@Bean
	@ConditionalOnPlatformVersion("2.4.0-M1")
	public BuildCustomizer<Build> junitJupiterTestStarterContributor() {
		return (build) -> build.dependencies()
			.add("test", Dependency.withCoordinates("org.springframework.boot", "spring-boot-starter-test")
				.scope(DependencyScope.TEST_COMPILE));
	}

	@Bean
	public DefaultStarterBuildCustomizer defaultStarterContributor(InitializrMetadata metadata) {
		return new DefaultStarterBuildCustomizer(metadata);
	}

	@Bean
	public DefaultMavenBuildCustomizer initializrMetadataMavenBuildCustomizer(ProjectDescription description,
			InitializrMetadata metadata) {
		return new DefaultMavenBuildCustomizer(description, metadata);
	}

	@Bean
	@ConditionalOnPackaging(WarPackaging.ID)
	public WarPackagingWebStarterBuildCustomizer warPackagingWebStarterBuildCustomizer(InitializrMetadata metadata) {
		return new WarPackagingWebStarterBuildCustomizer(metadata);
	}

	@Bean
	public DependencyManagementBuildCustomizer dependencyManagementBuildCustomizer(ProjectDescription description,
			InitializrMetadata metadata) {
		return new DependencyManagementBuildCustomizer(description, metadata);
	}

	@Bean
	public SimpleBuildCustomizer projectDescriptionBuildCustomizer(ProjectDescription description) {
		return new SimpleBuildCustomizer(description);
	}

	@Bean
	public SpringBootVersionRepositoriesBuildCustomizer repositoriesBuilderCustomizer(ProjectDescription description) {
		return new SpringBootVersionRepositoriesBuildCustomizer(description.getPlatformVersion());
	}

}

		return (build) -> build.dependencies()
			.add("test",
					Dependency.withCoordinates("org.springframework.boot", "spring-boot-starter-test")
						.scope(DependencyScope.TEST_COMPILE)
						.exclusions(new Exclusion("org.junit.vintage", "junit-vintage-engine")));
	
<no_super_class>