class SpringCloudStreamBuildCustomizer implements BuildCustomizer<Build> {

	private final ProjectDescription description;

	SpringCloudStreamBuildCustomizer(ProjectDescription description) {
		this.description = description;
	}

	@Override
	public void customize(Build build) {<FILL_FUNCTION_BODY>}

	protected boolean hasDependency(String id, Build build) {
		return build.dependencies().has(id);
	}

	protected boolean hasPulsarSupport() {
		Version platformVersion = this.description.getPlatformVersion();
		return platformVersion.compareTo(Version.parse("3.2.0-M3")) >= 0;
	}

}

		if (hasDependency("cloud-stream", build) || hasDependency("cloud-bus", build)) {
			if (hasDependency("amqp", build)) {
				build.dependencies()
					.add("cloud-stream-binder-rabbit", "org.springframework.cloud", "spring-cloud-stream-binder-rabbit",
							DependencyScope.COMPILE);
			}
			if (hasDependency("kafka", build)) {
				build.dependencies()
					.add("cloud-stream-binder-kafka", "org.springframework.cloud", "spring-cloud-stream-binder-kafka",
							DependencyScope.COMPILE);
			}
			if (hasPulsarSupport() && hasDependency("pulsar", build)) {
				build.dependencies()
					.add("cloud-stream-binder-pulsar", "org.springframework.cloud", "spring-cloud-stream-binder-pulsar",
							DependencyScope.COMPILE);
			}
		}
		// Spring Cloud Stream specific
		if (hasDependency("cloud-stream", build)) {
			if (hasDependency("kafka-streams", build)) {
				build.dependencies()
					.add("cloud-stream-binder-kafka-streams", "org.springframework.cloud",
							"spring-cloud-stream-binder-kafka-streams", DependencyScope.COMPILE);
			}
			build.dependencies()
				.add("cloud-stream-test",
						Dependency.withCoordinates("org.springframework.cloud", "spring-cloud-stream-test-binder")
							.scope(DependencyScope.TEST_COMPILE));
		}
	
<no_super_class>