class OracleProjectGenerationConfiguration {

	@Bean
	@ConditionalOnRequestedDependency("testcontainers")
	ServiceConnectionsCustomizer oracleServiceConnectionsCustomizer(DockerServiceResolver serviceResolver,
			ProjectDescription projectDescription) {<FILL_FUNCTION_BODY>}

	@Bean
	@ConditionalOnRequestedDependency("docker-compose")
	ComposeFileCustomizer oracleComposeFileCustomizer(DockerServiceResolver serviceResolver,
			ProjectDescription projectDescription) {
		OracleContainer oracleContainer = OracleContainer.forVersion(projectDescription.getPlatformVersion());
		return (composeFile) -> serviceResolver.doWith(oracleContainer.serviceId, (service) -> composeFile.services()
			.add("oracle", service.andThen((builder) -> builder.environment("ORACLE_PASSWORD", "secret"))));
	}

	private enum OracleContainer {

		FREE("oracleFree", "org.testcontainers.oracle.OracleContainer"),

		XE("oracleXe", "org.testcontainers.containers.OracleContainer");

		private static final VersionRange SPRING_BOOT_3_2_0_OR_LATER = VersionParser.DEFAULT.parseRange("3.2.0");

		private final String serviceId;

		private final String testcontainersClassName;

		OracleContainer(String serviceId, String testcontainersClassName) {
			this.serviceId = serviceId;
			this.testcontainersClassName = testcontainersClassName;
		}

		static OracleContainer forVersion(Version version) {
			return SPRING_BOOT_3_2_0_OR_LATER.match(version) ? FREE : XE;
		}

	}

}

		OracleContainer oracleContainer = OracleContainer.forVersion(projectDescription.getPlatformVersion());
		return (serviceConnections) -> serviceResolver.doWith(oracleContainer.serviceId,
				(service) -> serviceConnections.addServiceConnection(ServiceConnection
					.ofContainer(oracleContainer.serviceId, service, oracleContainer.testcontainersClassName, false)));
	
<no_super_class>