class SolaceBinderBuildCustomizer implements BuildCustomizer<Build> {

	private static final String BOM_ID = "solace-spring-cloud";

	private final BillOfMaterials bom;

	SolaceBinderBuildCustomizer(InitializrMetadata metadata, ProjectDescription description) {
		this.bom = resolveBom(metadata, description);
	}

	private static BillOfMaterials resolveBom(InitializrMetadata metadata, ProjectDescription description) {<FILL_FUNCTION_BODY>}

	@Override
	public void customize(Build build) {
		if (this.bom != null) {
			build.properties().version(this.bom.getVersionProperty(), this.bom.getVersion());
			build.boms().add(BOM_ID);
			build.dependencies()
				.add("solace-binder",
						Dependency.withCoordinates("com.solace.spring.cloud", "spring-cloud-starter-stream-solace"));
			// The low-level API is likely not going to be used in such arrangement
			build.dependencies().remove("solace");
		}
	}

}

		try {
			return metadata.getConfiguration().getEnv().getBoms().get(BOM_ID).resolve(description.getPlatformVersion());
		}
		catch (InvalidInitializrMetadataException ex) {
			return null;
		}
	
<no_super_class>