diff --git a/gradle/gradle-enterprise.gradle b/gradle/gradle-enterprise.gradle index 2dd6ac80a4..b3de61a3b7 100644 --- a/gradle/gradle-enterprise.gradle +++ b/gradle/gradle-enterprise.gradle @@ -47,11 +47,10 @@ gradleEnterprise { uploadInBackground = !settings.ext.isCiEnvironment tag "JDK ${JavaVersion.current().toString()}" - String db = rootProject.hasProperty( 'db' ) ? rootProject.properties.db : 'h2' - tag db - value 'database', db - if ( rootProject.hasProperty( 'ci.node' ) ) { - tag rootProject.property('ci.node') + tag extensions.db + value 'database', extensions.db + if ( extensions.hasProperty( 'ci.node' ) ) { + tag extensions.property( 'ci.node' ) } } } \ No newline at end of file diff --git a/local-build-plugins/src/main/java/org/hibernate/orm/env/EnvironmentSettingsPlugin.java b/local-build-plugins/src/main/java/org/hibernate/orm/env/EnvironmentSettingsPlugin.java index 9e7bdd5a67..01997feb3f 100644 --- a/local-build-plugins/src/main/java/org/hibernate/orm/env/EnvironmentSettingsPlugin.java +++ b/local-build-plugins/src/main/java/org/hibernate/orm/env/EnvironmentSettingsPlugin.java @@ -1,5 +1,9 @@ package org.hibernate.orm.env; +import java.util.Map; +import java.util.Objects; + +import org.gradle.StartParameter; import org.gradle.api.Plugin; import org.gradle.api.initialization.Settings; @@ -11,5 +15,24 @@ public class EnvironmentSettingsPlugin implements Plugin { @Override public void apply(Settings settings) { settings.getExtensions().add( JpaVersion.EXT_KEY, JpaVersion.from( settings ) ); + settings.getExtensions().add( "db", Objects.requireNonNullElse( getP( settings, "db" ), "h2" ) ); + String ciNode = getP( settings, "ci.node" ); + if ( ciNode != null ) { + settings.getExtensions().add( "ci.node", ciNode ); + } } + + private static String getP(Settings settings, String key) { + StartParameter startParameter = settings.getStartParameter(); + // the `-P` settings passed at command-line + final Map projectProperties = startParameter.getProjectProperties(); + final String projectProperty = projectProperties.get( key ); + if ( projectProperty != null && !projectProperty.isEmpty() ) { + return projectProperty; + } + else { + return null; + } + } + }