class CustomProjectGenerationConfigurationExample {

	// tag::code[]
	@Bean
	public CustomProjectGenerationController projectGenerationController(InitializrMetadataProvider metadataProvider,
			ApplicationContext applicationContext) {<FILL_FUNCTION_BODY>}
	// end::code[]

	static class CustomProjectRequestToDescriptionConverter
			implements ProjectRequestToDescriptionConverter<CustomProjectRequest> {

		@Override
		public ProjectDescription convert(CustomProjectRequest request, InitializrMetadata metadata) {
			return new MutableProjectDescription();
		}

	}

}

		ProjectGenerationInvoker<CustomProjectRequest> projectGenerationInvoker = new ProjectGenerationInvoker<>(
				applicationContext, new CustomProjectRequestToDescriptionConverter());
		return new CustomProjectGenerationController(metadataProvider, projectGenerationInvoker);
	
<no_super_class>