class SpringModulithBuildCustomizer implements BuildCustomizer<Build> {

	private static final Collection<String> OBSERVABILITY_DEPENDENCIES = List.of("actuator", "datadog", "graphite",
			"influx", "new-relic", "prometheus", "wavefront", "zipkin");

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

	private void addEventPublicationRegistryBackend(Build build) {
		DependencyContainer dependencies = build.dependencies();
		if (dependencies.has("data-mongodb")) {
			dependencies.add("modulith-starter-mongodb", modulithDependency("starter-mongodb"));
		}
		if (dependencies.has("data-jdbc")) {
			dependencies.add("modulith-starter-jdbc", modulithDependency("starter-jdbc"));
		}
		if (dependencies.has("data-jpa")) {
			dependencies.add("modulith-starter-jpa", modulithDependency("starter-jpa"));
		}
	}

	private Builder<?> modulithDependency(String name) {
		return Dependency.withCoordinates("org.springframework.modulith", "spring-modulith-" + name);
	}

}

		DependencyContainer dependencies = build.dependencies();
		if (dependencies.has("actuator")) {
			dependencies.add("modulith-actuator", modulithDependency("actuator").scope(DependencyScope.RUNTIME));
		}
		if (OBSERVABILITY_DEPENDENCIES.stream().anyMatch(dependencies::has)) {
			dependencies.add("modulith-observability",
					modulithDependency("observability").scope(DependencyScope.RUNTIME));
		}
		addEventPublicationRegistryBackend(build);
		dependencies.add("modulith-starter-test",
				modulithDependency("starter-test").scope(DependencyScope.TEST_COMPILE));
	
<no_super_class>