diff --git a/build.gradle b/build.gradle index 0592575e20e6..d3259de7856f 100644 --- a/build.gradle +++ b/build.gradle @@ -40,8 +40,8 @@ plugins { // Releasing tasks.register( 'releasePrepare' ) { - group "release-prepare" - description "Scripted release 'Release Prepare' stage. " + + group = "release-prepare" + description = "Scripted release 'Release Prepare' stage. " + "Includes various checks as to the publish-ability of the project: testing, generation, etc. " + "Sub-projects register their own `releasePrepare` to hook into this stage." // See `:release:releasePrepare` which does a lot of heavy lifting here diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2e1113280ef1..19a6bdeb848a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index ef07e0162b18..adff685a0348 100755 --- a/gradlew +++ b/gradlew @@ -114,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -172,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" diff --git a/gradlew.bat b/gradlew.bat index 5eed7ee84528..e509b2dd8fe5 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/hibernate-core/hibernate-core.gradle b/hibernate-core/hibernate-core.gradle index 0b6ada3e5f43..f139db9fd873 100644 --- a/hibernate-core/hibernate-core.gradle +++ b/hibernate-core/hibernate-core.gradle @@ -102,7 +102,7 @@ jar { } ext { - jaxbTargetDir = project.file( "${buildDir}/generated/sources/xjc/main" ) + jaxbTargetDir = project.layout.buildDirectory.dir("generated/sources/xjc/main").get().asFile } sourceSets { @@ -144,11 +144,11 @@ versionInjection { into( 'org.hibernate.Version', 'initVersion' ) } -task copyBundleResourcesXml (type: Copy) { +tasks.register('copyBundleResourcesXml', Copy) { inputs.property( "db", db ) inputs.property( "dbHost", dbHost ) ext { - bundlesTargetDir = file( "${buildDir}/bundles" ) + bundlesTargetDir = layout.buildDirectory.dir("bundles").get().asFile // Escape bundleTokens = [ 'db.dialect' : dbBundle[db]['db.dialect'].replace("&", "&"), @@ -159,7 +159,7 @@ task copyBundleResourcesXml (type: Copy) { 'jdbc.datasource' : dbBundle[db]['jdbc.datasource'].replace("&", "&"), 'connection.init_sql' : dbBundle[db]['connection.init_sql'].replace("&", "&") ] - ext.bundleTokens['buildDirName'] = project.relativePath( buildDir ) + ext.bundleTokens['buildDirName'] = project.relativePath( layout.buildDirectory.asFile.get() ) } from('src/test/bundles/templates') { @@ -173,13 +173,13 @@ task copyBundleResourcesXml (type: Copy) { } } -task copyBundleResourcesNonXml (type: Copy) { +tasks.register('copyBundleResourcesNonXml', Copy) { inputs.property( "db", db ) ext { - bundlesTargetDir = file( "${buildDir}/bundles" ) + bundlesTargetDir = layout.buildDirectory.dir("bundles").get().asFile // Escape bundleTokens = dbBundle[db] - ext.bundleTokens['buildDirName'] = project.relativePath( buildDir ) + ext.bundleTokens['buildDirName'] = project.relativePath(layout.buildDirectory.asFile.get()) } from('src/test/bundles/templates') { @@ -193,7 +193,7 @@ task copyBundleResourcesNonXml (type: Copy) { } } -task copyBundleResources (type: Copy) { +tasks.register('copyBundleResources', Copy) { inputs.property( "db", db ) dependsOn tasks.copyBundleResourcesXml dependsOn tasks.copyBundleResourcesNonXml @@ -208,7 +208,8 @@ sourcesJar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } -task testJar(type: Jar, dependsOn: testClasses) { +tasks.register('testJar', Jar) { + dependsOn testClasses duplicatesStrategy = DuplicatesStrategy.EXCLUDE archiveClassifier.set( 'test' ) from sourceSets.test.output @@ -234,9 +235,9 @@ tasks.register( "generateAnnotationClasses", JavaCompile ) { destinationDirectory.set( project.layout.buildDirectory.dir( "generated/sources/annotations/" ) ) } -task generateEnversStaticMetamodel( - type: JavaCompile, - description: "Generate the Hibernate Envers revision entity static metamodel classes." ) { +tasks.register('generateEnversStaticMetamodel', JavaCompile) { + description = "Generate the Hibernate Envers revision entity static metamodel classes." + source = sourceSets.main.java // we only want to include these specific classes for metamodel generation. // if envers adds any additional revision entity classes, they must be listed here. @@ -253,10 +254,10 @@ task generateEnversStaticMetamodel( ] // put static metamodel classes back out to the source tree since they're version controlled. - destinationDirectory = new File( "${projectDir}/src/main/java" ) + destinationDirectory = layout.projectDirectory.dir("src/main/java").asFile } -tasks.withType( Test.class ).each { test -> +tasks.withType( Test.class ).configureEach { test -> test.systemProperty 'file.encoding', 'utf-8' // Allow creating a function in HSQLDB for this Java method test.systemProperty 'hsqldb.method_class_names', 'org.hibernate.orm.test.jpa.transaction.TransactionTimeoutTest.sleep' diff --git a/hibernate-envers/hibernate-envers.gradle b/hibernate-envers/hibernate-envers.gradle index 943a89f61a07..f79d40713af6 100644 --- a/hibernate-envers/hibernate-envers.gradle +++ b/hibernate-envers/hibernate-envers.gradle @@ -54,7 +54,7 @@ configurations { } } -tasks.withType( Test.class ).each { test -> +tasks.withType( Test.class ).configureEach { test -> // see GradleParallelTestingResolver for how the test worker id is resolved in JDBC configs if ( project.db == "h2" || project.db == "hsqldb" || project.db == "pgsql_ci" || project.db == "edb_ci" || project.db == "oracle_ci" || project.db == "oracle_xe_ci" || project.db == "mysql_ci" || project.db == "mariadb_ci" diff --git a/hibernate-platform/hibernate-platform.gradle b/hibernate-platform/hibernate-platform.gradle index 4fd486923b6c..4bb44d7471ed 100644 --- a/hibernate-platform/hibernate-platform.gradle +++ b/hibernate-platform/hibernate-platform.gradle @@ -65,8 +65,8 @@ dependencies { tasks.register("releasePrepare") { - group "release-prepare" - description "See :release:releasePrepare for details." + group = "release-prepare" + description = "See :release:releasePrepare for details." dependsOn tasks.generateMetadataFileForPublishedArtifactsPublication dependsOn tasks.generatePomFileForPublishedArtifactsPublication diff --git a/local-build-plugins/build.gradle b/local-build-plugins/build.gradle index f6bb9a2d2a27..598f92bcc1f1 100644 --- a/local-build-plugins/build.gradle +++ b/local-build-plugins/build.gradle @@ -14,7 +14,7 @@ repositories { group = 'org.hibernate.build' version = '1.0.0-SNAPSHOT' -buildDir = "target" +layout.buildDirectory.set(file("target")) dependencies { implementation gradleApi() diff --git a/local-build-plugins/src/main/groovy/local.java-module.gradle b/local-build-plugins/src/main/groovy/local.java-module.gradle index 0f28337378b1..e9ff73489b59 100644 --- a/local-build-plugins/src/main/groovy/local.java-module.gradle +++ b/local-build-plugins/src/main/groovy/local.java-module.gradle @@ -30,11 +30,11 @@ sourceSets { test { resources { configure( srcDir('src/test/resources') ) { - filter { - include '*.properties' - include '*.xml' - include '**/*.properties' - include '**/*.xml' + filter { + include '*.properties' + include '*.xml' + include '**/*.properties' + include '**/*.xml' } } } @@ -179,12 +179,12 @@ processTestResources { } copy { from file( 'src/test/resources' ) - into file( "${buildDir}/resources/test" ) + into layout.buildDirectory.dir("resources/test").get().asFile exclude 'src/test/resources/hibernate.properties' } copy { from file( 'src/test/resources/hibernate.properties' ) - into file( "${buildDir}/resources/test" ) + into layout.buildDirectory.dir("resources/test").get().asFile filter( ReplaceTokens, tokens: dbBundle[db] ) } } @@ -194,7 +194,7 @@ processTestResources { // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Testing -tasks.withType( Test.class ).each { test -> +tasks.withType( Test.class ).configureEach { test -> test.useJUnitPlatform() // Byteman needs this property to be set, https://developer.jboss.org/thread/274997 @@ -244,8 +244,8 @@ test { // Log a statement for each test. // Used in the Travis build so that Travis doesn't end up panicking because there's no output for a long time. testLogging { - displayGranularity 1 - events "passed", "skipped", "failed" + displayGranularity = 1 + events = ["passed", "skipped", "failed"] exceptionFormat = 'full' } } @@ -254,7 +254,7 @@ test { // Attach tools JAR to the classpath for byteman tests final File toolsJar = file("${System.getProperty('java.home')}/../lib/tools.jar") if ( toolsJar.exists() ) { - dependencies{ + dependencies { testImplementation files( toolsJar ) } } @@ -269,7 +269,7 @@ java { withSourcesJar() } -tasks.withType(Jar).configureEach { +tasks.withType(Jar).configureEach {jarTask -> manifest { attributes( // Basic JAR manifest attributes @@ -289,41 +289,38 @@ tasks.withType(Jar).configureEach { 'Bundle-Vendor': 'Hibernate.org', 'Bundle-DocURL': "https://hibernate.org/orm/releases/${hibernateVersion.family}" ) + if ("jar".equals(jarTask.name)) { + attributes( + // Java 9 module name + 'Automatic-Module-Name': java9ModuleName, + + // BND Plugin instructions (for OSGi): + '-reproducible': true, + '-noextraheaders': true, + 'Bundle-Name': project.name, + 'Bundle-SymbolicName': java9ModuleName, + // This is overridden in some sub-projects + 'Import-Package': [ + // Temporarily support JTA 1.1 -- Karaf and other frameworks still + // use it. Without this, the plugin generates [1.2,2). + 'javax.transaction;version="[1.1,2)"', + // Also import every package referenced in the code + // (note that '*' is resolved at build time to a list of packages) + '*' + ].join( ',' ), + '-exportcontents': "*;version=${project.version}" + ) + } } -} - -tasks.named("jar") { - manifest { - attributes( - // Java 9 module name - 'Automatic-Module-Name': java9ModuleName, - - // BND Plugin instructions (for OSGi): - '-reproducible': true, - '-noextraheaders': true, - 'Bundle-Name': project.name, - 'Bundle-SymbolicName': java9ModuleName, - // This is overridden in some sub-projects - 'Import-Package': [ - // Temporarily support JTA 1.1 -- Karaf and other frameworks still - // use it. Without this, the plugin generates [1.2,2). - 'javax.transaction;version="[1.1,2)"', - // Also import every package referenced in the code - // (note that '*' is resolved at build time to a list of packages) - '*' - ].join( ',' ), - '-exportcontents': "*;version=${project.version}" - ) - } - metaInf { - from(rootProject.projectDir, { - include "LICENSE.txt" - }) + if ("jar".equals(jarTask.name)) { + metaInf { + from(rootProject.projectDir, { + include "LICENSE.txt" + }) + } } } - - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Reproducible Builds diff --git a/local-build-plugins/src/main/java/org/hibernate/build/xjc/XjcListenerImpl.java b/local-build-plugins/src/main/java/org/hibernate/build/xjc/XjcListenerImpl.java index 6c6a94f38385..1942953fe937 100644 --- a/local-build-plugins/src/main/java/org/hibernate/build/xjc/XjcListenerImpl.java +++ b/local-build-plugins/src/main/java/org/hibernate/build/xjc/XjcListenerImpl.java @@ -5,7 +5,7 @@ package org.hibernate.build.xjc; import com.sun.tools.xjc.XJCListener; -import org.gradle.api.Project; +import org.gradle.api.logging.Logger; import org.xml.sax.SAXParseException; /** @@ -15,12 +15,12 @@ */ public class XjcListenerImpl extends XJCListener { private final String schemaName; - private final Project project; + private final Logger logger; private boolean hadErrors; - public XjcListenerImpl(String schemaName, Project project) { + public XjcListenerImpl(String schemaName, Logger logger) { this.schemaName = schemaName; - this.project = project; + this.logger = logger; } public boolean hadErrors() { @@ -29,33 +29,33 @@ public boolean hadErrors() { @Override public void generatedFile(String fileName, int current, int total) { - project.getLogger().info( "XJC generated file ({}) : {}", schemaName, fileName ); + logger.info( "XJC generated file ({}) : {}", schemaName, fileName ); } @Override public void message(String msg) { - project.getLogger().info( "XJC message ({}) : {}", schemaName, msg ); + logger.info( "XJC message ({}) : {}", schemaName, msg ); } @Override public void info(SAXParseException exception) { - project.getLogger().info( "XJC info ({})", schemaName, exception ); + logger.info( "XJC info ({})", schemaName, exception ); } @Override public void warning(SAXParseException exception) { - project.getLogger().warn( "XJC warning ({})",schemaName, exception ); + logger.warn( "XJC warning ({})",schemaName, exception ); } @Override public void error(SAXParseException exception) { hadErrors = true; - project.getLogger().error( "XJC error ({})", schemaName, exception ); + logger.error( "XJC error ({})", schemaName, exception ); } @Override public void fatalError(SAXParseException exception) { hadErrors = true; - project.getLogger().error( "XJC fatal error ({})", schemaName, exception ); + logger.error( "XJC fatal error ({})", schemaName, exception ); } } diff --git a/local-build-plugins/src/main/java/org/hibernate/build/xjc/XjcTask.java b/local-build-plugins/src/main/java/org/hibernate/build/xjc/XjcTask.java index de38970a8d47..677dc16d00b9 100644 --- a/local-build-plugins/src/main/java/org/hibernate/build/xjc/XjcTask.java +++ b/local-build-plugins/src/main/java/org/hibernate/build/xjc/XjcTask.java @@ -8,6 +8,7 @@ import com.sun.tools.xjc.Driver; import org.gradle.api.DefaultTask; import org.gradle.api.file.DirectoryProperty; +import org.gradle.api.file.FileSystemOperations; import org.gradle.api.file.RegularFileProperty; import org.gradle.api.provider.Property; import org.gradle.api.provider.SetProperty; @@ -20,6 +21,7 @@ import org.gradle.api.tasks.PathSensitivity; import org.gradle.api.tasks.TaskAction; +import javax.inject.Inject; import java.util.ArrayList; import java.util.Collections; import java.util.Set; @@ -30,7 +32,7 @@ * @author Steve Ebersole */ @CacheableTask -public class XjcTask extends DefaultTask { +public abstract class XjcTask extends DefaultTask { private final Property schemaName; private final DirectoryProperty outputDirectory; private final RegularFileProperty xsdFile; @@ -49,6 +51,9 @@ public XjcTask() { schemaName.convention( xsdFile.map( regularFile -> regularFile.getAsFile().getName() ) ); } + @Inject + protected abstract FileSystemOperations getFileSystemOperations(); + @Internal public Property getSchemaName() { return schemaName; @@ -78,9 +83,9 @@ public DirectoryProperty getOutputDirectory() { @TaskAction public void generateJaxbBindings() { - getProject().delete( outputDirectory.get().getAsFileTree() ); + getFileSystemOperations().delete( spec -> spec.delete( outputDirectory.get().getAsFileTree() ) ); - final XjcListenerImpl listener = new XjcListenerImpl( schemaName.get(), getProject() ); + final XjcListenerImpl listener = new XjcListenerImpl( schemaName.get(), getLogger() ); final String[] args = buildXjcArgs(); try { diff --git a/local-build-plugins/src/main/java/org/hibernate/orm/antlr/AntlrHelper.java b/local-build-plugins/src/main/java/org/hibernate/orm/antlr/AntlrHelper.java index 1ec73679fe41..f9d6891e7d03 100644 --- a/local-build-plugins/src/main/java/org/hibernate/orm/antlr/AntlrHelper.java +++ b/local-build-plugins/src/main/java/org/hibernate/orm/antlr/AntlrHelper.java @@ -11,7 +11,7 @@ import java.io.FileWriter; import java.io.IOException; -import org.gradle.api.Project; +import org.gradle.api.logging.Logger; /** * This is intended to deal with this Antlr issue @@ -31,12 +31,12 @@ private AntlrHelper() { * * @param generationDirectory The (temp) directory where we did the generation, including package directory structure * @param outputDirectory The {@code $buildDir/generated/sources/antlr} subdirectory (including package directory structure) into which to copy the fixed files. - * @param project The Gradle project ref + * @param logger The Gradle's context aware task logger */ public static void stripSillyGeneratedFromLines( File generationDirectory, File outputDirectory, - Project project) { + Logger logger) { final File[] generatedJavaFiles = generationDirectory.listFiles( (dir, name) -> name.endsWith( ".java" ) ); if ( generatedJavaFiles == null ) { // warn? @@ -44,15 +44,15 @@ public static void stripSillyGeneratedFromLines( } for ( int i = 0; i < generatedJavaFiles.length; i++ ) { - stripSillyGeneratedFromLineFromFile( generatedJavaFiles[i], outputDirectory, project ); + stripSillyGeneratedFromLineFromFile( generatedJavaFiles[i], outputDirectory, logger ); } } private static void stripSillyGeneratedFromLineFromFile( File generatedJavaFile, File outputDirectory, - Project project) { - project.getLogger().lifecycle( "Stripping silly generated-from line from {} into {}", + Logger logger) { + logger.lifecycle( "Stripping silly generated-from line from {} into {}", generatedJavaFile.getAbsolutePath(), outputDirectory.getAbsolutePath() ); @@ -73,7 +73,7 @@ private static void stripSillyGeneratedFromLineFromFile( } } catch (IOException e) { - project.getLogger().lifecycle( "Unable to remove the generated-from line added by Antlr to the generated file: {}", e.getMessage() ); + logger.lifecycle( "Unable to remove the generated-from line added by Antlr to the generated file: {}", e.getMessage() ); } } } diff --git a/local-build-plugins/src/main/java/org/hibernate/orm/antlr/SplitGrammarGenerationTask.java b/local-build-plugins/src/main/java/org/hibernate/orm/antlr/SplitGrammarGenerationTask.java index 9a50f5544eb8..43dedaf804d2 100644 --- a/local-build-plugins/src/main/java/org/hibernate/orm/antlr/SplitGrammarGenerationTask.java +++ b/local-build-plugins/src/main/java/org/hibernate/orm/antlr/SplitGrammarGenerationTask.java @@ -5,10 +5,12 @@ package org.hibernate.orm.antlr; import java.io.File; +import java.nio.file.Path; import javax.inject.Inject; import org.gradle.api.DefaultTask; +import org.gradle.api.artifacts.Configuration; import org.gradle.api.file.Directory; import org.gradle.api.file.RegularFile; import org.gradle.api.provider.Provider; @@ -36,6 +38,9 @@ public abstract class SplitGrammarGenerationTask extends DefaultTask { private final Provider generationDirectory; private final Provider outputDirectory; + private final Configuration antlrConfiguration; + private final Path projectDir; + @Inject public SplitGrammarGenerationTask( SplitGrammarDescriptor grammarDescriptor, @@ -65,6 +70,9 @@ public SplitGrammarGenerationTask( final Directory outputBaseDirectory = antlrSpec.getOutputBaseDirectory().get(); return outputBaseDirectory.dir( grammarDescriptor.getPackageName().get().replace( '.', '/' ) ); } ); + + antlrConfiguration = getProject().getConfigurations().getByName( "antlr" ); + projectDir = getProject().getProjectDir().getAbsoluteFile().toPath(); } @InputFile @@ -100,14 +108,14 @@ public void generateLexerAndParser() { generateLexer( generationDir ); generateParser( generationDir ); - stripSillyGeneratedFromLines( generationDir, outputDir, getProject() ); + stripSillyGeneratedFromLines( generationDir, outputDir, getLogger() ); } private void generateLexer(File outputDir) { final File lexerFile = getLexerGrammarFile().get().getAsFile(); - getProject().getLogger().lifecycle( + getLogger().lifecycle( "Starting Antlr lexer grammar generation `{}` : `{}` -> `{}`", grammarDescriptor.getName(), lexerFile.getAbsolutePath(), @@ -118,9 +126,9 @@ private void generateLexer(File outputDir) { execOperations.javaexec( (javaExecSpec) -> { javaExecSpec.getMainClass().set( "org.antlr.v4.Tool" ); - javaExecSpec.classpath( getProject().getConfigurations().getByName( "antlr" ) ); + javaExecSpec.classpath( antlrConfiguration ); javaExecSpec.args( - "-o", getProject().relativePath( outputDir.getAbsolutePath() ), + "-o", projectDir.relativize( outputDir.toPath() ), "-long-messages", lexerFile.getAbsolutePath() ); @@ -131,7 +139,7 @@ private void generateLexer(File outputDir) { private void generateParser(File outputDir) { final File parserFile = getParserGrammarFile().get().getAsFile(); - getProject().getLogger().lifecycle( + getLogger().lifecycle( "Starting Antlr parser grammar generation `{}` : `{}` -> `{}`", grammarDescriptor.getName(), parserFile.getAbsolutePath(), @@ -142,9 +150,9 @@ private void generateParser(File outputDir) { execOperations.javaexec( (javaExecSpec) -> { javaExecSpec.getMainClass().set( "org.antlr.v4.Tool" ); - javaExecSpec.classpath( getProject().getConfigurations().named( "antlr" ) ); + javaExecSpec.classpath( antlrConfiguration ); javaExecSpec.args( - "-o", getProject().relativePath( outputDir.getAbsolutePath() ), + "-o", projectDir.relativize( outputDir.toPath() ), "-long-messages", parserFile.getAbsolutePath() ); diff --git a/local-build-plugins/src/main/java/org/hibernate/orm/post/LoggingReportTask.java b/local-build-plugins/src/main/java/org/hibernate/orm/post/LoggingReportTask.java index d6a0d92fe7b7..69a9310d90b9 100644 --- a/local-build-plugins/src/main/java/org/hibernate/orm/post/LoggingReportTask.java +++ b/local-build-plugins/src/main/java/org/hibernate/orm/post/LoggingReportTask.java @@ -118,7 +118,7 @@ public void generateLoggingReport() { private IdRange calculateIdRange(AnnotationInstance msgLoggerAnnUsage, SubSystem subSystem) { final ClassInfo loggerClassInfo = msgLoggerAnnUsage.target().asClass(); - getProject().getLogger().lifecycle( "MessageLogger (`{}`) missing id-range", loggerClassInfo.simpleName() ); + getLogger().lifecycle( "MessageLogger (`{}`) missing id-range", loggerClassInfo.simpleName() ); final List messageAnnUsages = loggerClassInfo.annotations( MSG_ANN_NAME ); if ( messageAnnUsages.isEmpty() ) { diff --git a/local-build-plugins/src/main/java/org/hibernate/orm/properties/AsciiDocWriter.java b/local-build-plugins/src/main/java/org/hibernate/orm/properties/AsciiDocWriter.java index 2f4e3be27de7..7e8f0e63b373 100644 --- a/local-build-plugins/src/main/java/org/hibernate/orm/properties/AsciiDocWriter.java +++ b/local-build-plugins/src/main/java/org/hibernate/orm/properties/AsciiDocWriter.java @@ -14,7 +14,6 @@ import java.util.Map; import java.util.SortedSet; -import org.gradle.api.Project; import org.gradle.api.file.RegularFile; /** @@ -25,8 +24,7 @@ public class AsciiDocWriter { public static void writeToFile( String anchorNameBase, Map> settingDescriptorMap, - RegularFile outputFile, - Project project) { + RegularFile outputFile) { final File outputFileAsFile = outputFile.getAsFile(); try { Files.createDirectories( outputFileAsFile.getParentFile().toPath() ); @@ -36,7 +34,7 @@ public static void writeToFile( } try ( FileWriter fileWriter = new FileWriter( outputFileAsFile ) ) { - write( anchorNameBase, settingDescriptorMap, fileWriter, project ); + write( anchorNameBase, settingDescriptorMap, fileWriter ); } catch (IOException e) { throw new RuntimeException( "Failed to produce asciidoc output for collected properties", e ); @@ -46,8 +44,7 @@ public static void writeToFile( private static void write( String anchorNameBase, Map> settingDescriptorMap, - FileWriter writer, - Project project) throws IOException { + FileWriter writer) throws IOException { for ( Map.Entry> entry : settingDescriptorMap.entrySet() ) { final SettingsDocSection sectionDescriptor = entry.getKey(); final SortedSet sectionSettingDescriptors = entry.getValue(); diff --git a/local-build-plugins/src/main/java/org/hibernate/orm/properties/SettingsDocGenerationTask.java b/local-build-plugins/src/main/java/org/hibernate/orm/properties/SettingsDocGenerationTask.java index 4e7ab98ca5d7..1643d59e4341 100644 --- a/local-build-plugins/src/main/java/org/hibernate/orm/properties/SettingsDocGenerationTask.java +++ b/local-build-plugins/src/main/java/org/hibernate/orm/properties/SettingsDocGenerationTask.java @@ -36,12 +36,15 @@ public class SettingsDocGenerationTask extends DefaultTask { private final RegularFileProperty outputFile; + private final OrmBuildDetails buildDetails; + @Inject public SettingsDocGenerationTask(SettingsDocExtension dslExtension, Project project) { setGroup( TASK_GROUP_NAME ); setDescription( "Collects descriptions of Hibernate configuration properties in preparation for inclusion in the User Guide" ); - getInputs().property( "ormVersion", getProject().getExtensions().getByType( OrmBuildDetails.class ).getHibernateVersion() ); + buildDetails = getProject().getExtensions().getByType( OrmBuildDetails.class ); + getInputs().property( "ormVersion", buildDetails.getHibernateVersion() ); javadocDirectory = project.getObjects().directoryProperty(); javadocDirectory.convention( dslExtension.getJavadocDirectory() ); @@ -88,7 +91,7 @@ public RegularFileProperty getOutputFile() { public void generateSettingsDocumentation() { final String publishedJavadocUrl = publishedDocsUrl.get() + "/" - + getProject().getExtensions().getByType( OrmBuildDetails.class ).getHibernateVersionFamily() + + buildDetails.getHibernateVersionFamily() + "/javadocs/"; AsciiDocWriter.writeToFile( @@ -98,8 +101,7 @@ public void generateSettingsDocumentation() { sections.getAsMap(), publishedJavadocUrl ), - outputFile.get(), - getProject() + outputFile.get() ); } } diff --git a/tooling/hibernate-gradle-plugin/hibernate-gradle-plugin.gradle b/tooling/hibernate-gradle-plugin/hibernate-gradle-plugin.gradle index 7187d8e3929e..8e6d7f118edf 100644 --- a/tooling/hibernate-gradle-plugin/hibernate-gradle-plugin.gradle +++ b/tooling/hibernate-gradle-plugin/hibernate-gradle-plugin.gradle @@ -75,23 +75,23 @@ if ( jdkVersions.test.launcher.asInt() > 21 ) { } def releasePrepareTask = tasks.register("releasePrepare") { - group "release-prepare" - description "See :release:releasePrepare for details. Here we hook in the `check` task." + group ="release-prepare" + description = "See :release:releasePrepare for details. Here we hook in the `check` task." dependsOn tasks.check } // used from the h2 CI job tasks.register("preVerifyRelease") { - group "release-prepare" - description "Delegates to `releasePrepare` task" + group = "release-prepare" + description = "Delegates to `releasePrepare` task" dependsOn releasePrepareTask } tasks.register("releaseGradlePluginPerform") { - group "release-perform" - description "An explicit task for publishing Gradle Plugins to the Plugin Portal" + group = "release-perform" + description = "An explicit task for publishing Gradle Plugins to the Plugin Portal" dependsOn tasks.publishPlugins } @@ -102,7 +102,7 @@ publishing { repositories { maven { name = 'localPluginRepository' - url = "${buildDir}/local-plugin-repository" + url = layout.buildDirectory.dir("local-plugin-repository").get().asFile.toURI() } } }