class HibernateConfiguration {

		private final Version platformVersion;

		HibernateConfiguration(ProjectDescription description) {
			this.platformVersion = description.getPlatformVersion();
		}

		@Bean
		@ConditionalOnBuildSystem(MavenBuildSystem.ID)
		HibernatePluginMavenBuildCustomizer hibernatePluginMavenBuildCustomizer() {
			return new HibernatePluginMavenBuildCustomizer();
		}

		@Bean
		@ConditionalOnBuildSystem(value = GradleBuildSystem.ID, dialect = GradleBuildSystem.DIALECT_GROOVY)
		HibernatePluginGroovyDslGradleBuildCustomizer hibernatePluginGroovyDslGradleBuildCustomizer(
				MavenVersionResolver versionResolver) {
			return new HibernatePluginGroovyDslGradleBuildCustomizer(determineHibernateVersion(versionResolver));
		}

		@Bean
		@ConditionalOnBuildSystem(value = GradleBuildSystem.ID, dialect = GradleBuildSystem.DIALECT_KOTLIN)
		HibernatePluginKotlinDslGradleBuildCustomizer hibernatePluginKotlinDslGradleBuildCustomizer(
				MavenVersionResolver versionResolver) {
			return new HibernatePluginKotlinDslGradleBuildCustomizer(determineHibernateVersion(versionResolver));
		}

		private Version determineHibernateVersion(MavenVersionResolver versionResolver) {<FILL_FUNCTION_BODY>}

	}

			Map<String, String> resolve = versionResolver.resolveDependencies("org.springframework.boot",
					"spring-boot-dependencies", this.platformVersion.toString());
			String hibernateVersion = resolve.get("org.hibernate.orm" + ":hibernate-core");
			if (hibernateVersion == null) {
				throw new IllegalStateException(
						"Failed to determine Hibernate version for Spring Boot " + this.platformVersion);
			}
			return Version.parse(hibernateVersion);
		
<no_super_class>