diff --git a/gradle/java-module.gradle b/gradle/java-module.gradle index 538be87db1..07e7ceb9a4 100644 --- a/gradle/java-module.gradle +++ b/gradle/java-module.gradle @@ -56,11 +56,6 @@ if ( !project.description ) { // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Configurations and Dependencies - -configurations.all { - exclude group: 'xml-apis', module: 'xml-apis' -} - dependencies { implementation libraries.logging @@ -122,6 +117,20 @@ dependencies { } } +configurations { + javadocSources { + canBeConsumed = true + canBeResolved = false + visible = false + description = 'Configuration for accessing the sources that should be included in the javadoc for the project' + } +} + +artifacts { + sourceSets.main.allJava.srcDirs.each { srcDir -> + javadocSources srcDir + } +} // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Compilation @@ -462,21 +471,25 @@ task copyResourcesToIntelliJOutFolder(type: Task, dependsOn: project.tasks.proce Afterward, you can run any test from the IDE against that particular DB. */ task setDataBase dependsOn( processTestResources, copyResourcesToIntelliJOutFolder ) { - println( 'Setting current database to ' + db ) + println( "Setting current database to ${db}" ) } -copyResourcesToIntelliJOutFolder.mustRunAfter processTestResources +tasks.copyResourcesToIntelliJOutFolder.mustRunAfter processTestResources // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Report configs checkstyle { - sourceSets = [ project.sourceSets.main ] + it.sourceSets = [ project.sourceSets.main ] configFile = rootProject.file( 'shared/config/checkstyle/checkstyle.xml' ) showViolations = false } + // exclude generated java sources - by explicitly setting the base source dir -checkstyleMain.source = 'src/main/java' +tasks.checkstyleMain.source = 'src/main/java' +// because cfg package is a mess mainly from annotation stuff +tasks.checkstyleMain.exclude '**/org/hibernate/cfg/**' +tasks.checkstyleMain.exclude '**/org/hibernate/cfg/*' // define a second checkstyle task for checking non-fatal violations task nonFatalCheckstyle(type:Checkstyle) { @@ -486,10 +499,6 @@ task nonFatalCheckstyle(type:Checkstyle) { configFile = rootProject.file( 'shared/config/checkstyle/checkstyle-non-fatal.xml' ) } -// because cfg package is a mess mainly from annotation stuff -checkstyleMain.exclude '**/org/hibernate/cfg/**' -checkstyleMain.exclude '**/org/hibernate/cfg/*' - task forbiddenApisSystemOut(type: CheckForbiddenApis, dependsOn: compileJava) { bundledSignatures += 'jdk-system-out' @@ -510,26 +519,22 @@ task forbiddenApisNonPortable(type: CheckForbiddenApis, dependsOn: compileJava) bundledSignatures += 'jdk-non-portable' } -task forbiddenApis -project.tasks.withType( CheckForbiddenApis ).each { task -> - def outputFile = project.file( "${buildDir}/forbidden-apis/${task.name}-output.txt" ) +task forbiddenApis { + description 'Grouping task for all defined forbidden-apis tasks' +} - task.classesDirs = project.sourceSets.main.output.classesDirs - task.classpath = project.sourceSets.main.compileClasspath + project.sourceSets.main.runtimeClasspath - task.targetCompatibility = project.forbiddenAPITargetJDKCompatibility +project.tasks.withType( CheckForbiddenApis ) { + outputs.upToDateWhen { true } - task.outputs.file outputFile + classesDirs = project.sourceSets.main.output + classpath = configurations.runtimeClasspath + configurations.compileClasspath + targetCompatibility = project.forbiddenAPITargetJDKCompatibility - // This slows down the checks a little, but is necessary to avoid the gradle deamon holding on + // This slows down the checks a little, but is necessary to avoid the gradle daemon holding on // to class definitions loaded previously - even possibly in a previous build. - task.disableClassloadingCache = true + disableClassloadingCache = true - tasks.forbiddenApis.finalizedBy task - - task.doLast { - outputFile.parentFile.mkdirs() - outputFile.createNewFile() - } + tasks.forbiddenApis.finalizedBy it } project.tasks.check.finalizedBy tasks.forbiddenApis diff --git a/gradle/javadoc.gradle b/gradle/javadoc.gradle index aae0d5b09d..bbfd333b87 100644 --- a/gradle/javadoc.gradle +++ b/gradle/javadoc.gradle @@ -10,20 +10,6 @@ apply plugin : 'java' apply from: rootProject.file( 'gradle/base-information.gradle' ) -configurations { - javadocSources { - canBeConsumed = true - canBeResolved = false - description = 'Configuration for accessing the sources that should be included in the javadoc for the project' - } -} - -artifacts { - sourceSets.main.allJava.srcDirs.each { srcDir -> - javadocSources srcDir - } -} - javadoc { exclude( "**/internal/*" ) exclude( "**/generated-src/**" ) diff --git a/gradle/module.gradle b/gradle/module.gradle index c5e644ff9c..229fd4a55f 100644 --- a/gradle/module.gradle +++ b/gradle/module.gradle @@ -6,4 +6,8 @@ apply plugin: 'idea' apply plugin: 'eclipse' // minimize changes, at least for now (gradle uses 'build' by default).. -buildDir = "target" \ No newline at end of file +buildDir = "target" + +configurations.all { + exclude group: 'xml-apis', module: 'xml-apis' +} \ No newline at end of file diff --git a/release/release.gradle b/release/release.gradle index fda46f30ef..f3a49f2dea 100644 --- a/release/release.gradle +++ b/release/release.gradle @@ -9,7 +9,7 @@ import groovy.json.JsonSlurper * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or . */ -apply from: rootProject.file( 'gradle/base-information.gradle' ) +apply from: rootProject.file( 'gradle/module.gradle' ) apply from: rootProject.file( 'gradle/libraries.gradle' ) apply plugin: 'idea' diff --git a/settings.gradle b/settings.gradle index 7865bda36d..3ae35aa158 100644 --- a/settings.gradle +++ b/settings.gradle @@ -156,11 +156,8 @@ include 'metamodel-generator' project(':metamodel-generator').projectDir = new File(rootProject.projectDir, "tooling/metamodel-generator") project(':metamodel-generator').name = 'hibernate-jpamodelgen' -//include 'hibernate-gradle-plugin' -//project(':hibernate-gradle-plugin').projectDir = new File(rootProject.projectDir, "tooling/hibernate-gradle-plugin") - -//include 'project-template' -//project(':project-template').projectDir = new File(rootProject.projectDir, "tooling/project-template") +include 'hibernate-gradle-plugin' +project(':hibernate-gradle-plugin').projectDir = new File(rootProject.projectDir, "tooling/hibernate-gradle-plugin") include 'hibernate-enhance-maven-plugin' project(':hibernate-enhance-maven-plugin').projectDir = new File(rootProject.projectDir, "tooling/hibernate-enhance-maven-plugin") diff --git a/tooling/hibernate-gradle-plugin/hibernate-gradle-plugin.gradle b/tooling/hibernate-gradle-plugin/hibernate-gradle-plugin.gradle index f7ac25d331..e12fc8d439 100644 --- a/tooling/hibernate-gradle-plugin/hibernate-gradle-plugin.gradle +++ b/tooling/hibernate-gradle-plugin/hibernate-gradle-plugin.gradle @@ -9,12 +9,15 @@ import org.apache.tools.ant.filters.ReplaceTokens plugins { id 'java-gradle-plugin' - id 'com.gradle.plugin-publish' version '0.16.0' + id 'com.gradle.plugin-publish' version '0.20.0' id 'com.github.sebersole.testkit-junit5' version '1.2.0' + id 'checkstyle' } -apply from: rootProject.file( 'gradle/java-module.gradle' ) +apply from: rootProject.file( 'gradle/module.gradle' ) +apply from: rootProject.file( 'gradle/javadoc.gradle' ) +apply from: rootProject.file( 'gradle/libraries.gradle' ) apply from: rootProject.file( 'gradle/releasable.gradle' ) description = "Gradle plugin for integrating Hibernate aspects into your build" @@ -63,6 +66,9 @@ pluginBundle { } } +tasks.release { + dependsOn tasks.publishPlugins +} task publish { dependsOn tasks.publishPlugins } @@ -87,14 +93,12 @@ else { " Using the JDK that runs Gradle for Groovy compilation." ) } -tasks.test { - // Needs add-opens because Gradle uses illegal accesses to inject... mocks? Something like that. - jvmArgs( ['--add-opens', 'java.base/java.lang=ALL-UNNAMED'] ) +checkstyle { + sourceSets = [ project.sourceSets.main ] + configFile = rootProject.file( 'shared/config/checkstyle/checkstyle.xml' ) + showViolations = false } -tasks.release { - dependsOn tasks.publishPlugins -} afterEvaluate { if ( project.ormVersion.isSnapshot ) { diff --git a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/HibernateOrmSpec.java b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/HibernateOrmSpec.java index 73c5368d94..fd238be553 100644 --- a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/HibernateOrmSpec.java +++ b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/HibernateOrmSpec.java @@ -6,7 +6,7 @@ */ package org.hibernate.orm.tooling.gradle; -import jakarta.inject.Inject; +import javax.inject.Inject; import org.gradle.api.Action; import org.gradle.api.Project; diff --git a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/enhance/EnhancementSpec.java b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/enhance/EnhancementSpec.java index 7dfc8860f8..ab46075d59 100644 --- a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/enhance/EnhancementSpec.java +++ b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/enhance/EnhancementSpec.java @@ -6,7 +6,7 @@ */ package org.hibernate.orm.tooling.gradle.enhance; -import jakarta.inject.Inject; +import javax.inject.Inject; import org.gradle.api.Project; import org.gradle.api.provider.Property; diff --git a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/enhance/EnhancementTask.java b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/enhance/EnhancementTask.java index 061f77c4ff..d56048936d 100644 --- a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/enhance/EnhancementTask.java +++ b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/enhance/EnhancementTask.java @@ -7,7 +7,7 @@ package org.hibernate.orm.tooling.gradle.enhance; import java.util.concurrent.atomic.AtomicBoolean; -import jakarta.inject.Inject; +import javax.inject.Inject; import org.gradle.api.DefaultTask; import org.gradle.api.Project; diff --git a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/JpaMetamodelGenerationSpec.java b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/JpaMetamodelGenerationSpec.java index 17e37cd406..5fc18fc4c2 100644 --- a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/JpaMetamodelGenerationSpec.java +++ b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/JpaMetamodelGenerationSpec.java @@ -7,7 +7,7 @@ package org.hibernate.orm.tooling.gradle.metamodel; import java.util.Arrays; -import jakarta.inject.Inject; +import javax.inject.Inject; import org.gradle.api.JavaVersion; import org.gradle.api.Project; diff --git a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/JpaMetamodelGenerationTask.java b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/JpaMetamodelGenerationTask.java index 3aa6f84717..53a2311664 100644 --- a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/JpaMetamodelGenerationTask.java +++ b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/JpaMetamodelGenerationTask.java @@ -14,7 +14,7 @@ import java.net.URLClassLoader; import java.util.ArrayList; import java.util.List; import java.util.Properties; -import jakarta.inject.Inject; +import javax.inject.Inject; import jakarta.persistence.SharedCacheMode; import jakarta.persistence.ValidationMode; import jakarta.persistence.spi.ClassTransformer; diff --git a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/model/ObjectFactory.java b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/model/ObjectFactory.java index c5aa6b17a8..42ac7ba4e2 100644 --- a/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/model/ObjectFactory.java +++ b/tooling/hibernate-gradle-plugin/src/main/java/org/hibernate/orm/tooling/gradle/metamodel/model/ObjectFactory.java @@ -102,7 +102,7 @@ public class ObjectFactory { Consumer componentConsumer) { if ( propertyValueMapping instanceof BasicValue ) { final BasicValue basicValue = (BasicValue) propertyValueMapping; - return basicValue.resolve().getDomainJavaDescriptor().getJavaTypeClass(); + return basicValue.resolve().getDomainJavaType().getJavaTypeClass(); } if ( propertyValueMapping instanceof Component ) { @@ -191,7 +191,7 @@ public class ObjectFactory { if ( partJavaType instanceof BasicValue ) { final BasicValue basicValue = (BasicValue) partJavaType; - return basicValue.resolve().getDomainJavaDescriptor().getJavaTypeClass(); + return basicValue.resolve().getDomainJavaType().getJavaTypeClass(); } if ( partJavaType instanceof Component ) { diff --git a/tooling/hibernate-gradle-plugin/src/testKit/resources/simple/build.gradle b/tooling/hibernate-gradle-plugin/src/testKit/resources/simple/build.gradle index 7ef328e56e..bf093f8223 100644 --- a/tooling/hibernate-gradle-plugin/src/testKit/resources/simple/build.gradle +++ b/tooling/hibernate-gradle-plugin/src/testKit/resources/simple/build.gradle @@ -19,6 +19,10 @@ repositories { } } +dependencies { + implementation 'jakarta.persistence:jakarta.persistence-api:3.0.0' +} + hibernate { enhancement { lazyInitialization( true )