2023-08-10 10:20:24 -04:00
import java.util.function.Function
2021-08-02 19:04:41 -04:00
import org.asciidoctor.gradle.jvm.AsciidoctorTask
2023-05-11 10:54:58 -04:00
import org.asciidoctor.gradle.jvm.pdf.AsciidoctorPdfTask
2021-08-02 19:04:41 -04:00
2024-07-16 05:07:51 -04:00
buildscript {
configurations . all {
resolutionStrategy . dependencySubstitution {
substitute module ( 'com.burgstaller:okhttp-digest:1.10' ) using module (
'io.github.rburgst:okhttp-digest:1.21'
) because 'okhttp-digest only version 1.21 is available on Maven Central. Old version was on jcenter, which asciidoctor-gradle-plugin depends on transitively through simplified-jruby-gradle-plugin via http-builder-ng-okhttp '
}
}
}
2021-08-02 19:04:41 -04:00
plugins {
2024-07-15 13:27:12 -04:00
id 'org.asciidoctor.jvm.convert' version '4.0.2'
id 'org.asciidoctor.jvm.pdf' version '4.0.2'
id "org.asciidoctor.jvm.gems" version "4.0.2"
2023-08-10 10:20:24 -04:00
id "org.hibernate.orm.build.settings-doc"
2023-05-16 13:47:14 -04:00
}
repositories {
mavenCentral ( )
ruby . gems ( )
2021-08-02 19:04:41 -04:00
}
2017-12-13 10:15:22 -05:00
2015-05-19 00:23:35 -04:00
/ *
* Hibernate , Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License ( LGPL ) , version 2.1 or later .
* See the lgpl . txt file in the root directory or < http: //www.gnu.org/licenses/lgpl-2.1.html>.
* /
2018-01-10 16:06:58 -05:00
2023-01-30 11:34:42 -05:00
apply from: rootProject . file ( 'gradle/module.gradle' )
2022-03-15 13:15:56 -04:00
apply from: rootProject . file ( 'gradle/releasable.gradle' )
2022-03-09 13:28:13 -05:00
apply plugin: 'org.hibernate.orm.build.reports'
2016-02-18 04:16:46 -05:00
2023-08-08 19:11:13 -04:00
2013-11-22 15:51:56 -05:00
defaultTasks 'buildDocs'
2023-08-10 10:20:24 -04:00
configurations {
core
testing
envers
spatial
agroal
c3p0
hikaricp
jcache
jpamodelgen
javadocClasspath {
description = 'Class files for the javadoc to be built'
resolutionStrategy . capabilitiesResolution . withCapability ( 'org.junit.jupiter:junit-jupiter-params:5.7.1' ) { details - >
details . select ( details . candidates . first ( ) ) . because ( 'first' )
}
extendsFrom core
extendsFrom testing
extendsFrom envers
extendsFrom spatial
extendsFrom agroal
extendsFrom c3p0
extendsFrom hikaricp
extendsFrom jcache
extendsFrom jpamodelgen
}
javadocSources {
description = 'Source files to be built by the javadoc tool'
}
}
2023-08-08 19:11:13 -04:00
2011-03-22 11:39:53 -04:00
dependencies {
2023-08-10 10:20:24 -04:00
attributesSchema { schema - >
schema . attribute ( Bundling . BUNDLING_ATTRIBUTE ) { matchStrategy - >
final def nameComparator = Comparator . comparing (
new Function < Bundling , String > ( ) {
@Override
String apply ( Bundling o ) {
return o . name
}
}
)
matchStrategy . ordered ( new Comparator < Bundling > ( ) {
@Override
int compare ( Bundling o1 , Bundling o2 ) {
if ( Objects . equals ( o1 , o2 ) ) {
return 0 ;
}
if ( o1 = = null ) {
return 1 ;
}
if ( o2 = = null ) {
return - 1 ;
}
if ( o1 . name = = Bundling . EMBEDDED ) {
return - 1 ;
}
if ( o2 . name = = Bundling . EMBEDDED ) {
return 1 ;
}
return nameComparator . compare ( o1 , o2 )
}
} )
}
}
2016-02-08 10:33:09 -05:00
ext . pressgangVersion = '3.0.0'
2013-11-22 15:51:56 -05:00
2022-03-09 13:28:13 -05:00
reportAggregation project ( ':hibernate-agroal' )
reportAggregation project ( ':hibernate-c3p0' )
reportAggregation project ( ':hibernate-core' )
reportAggregation project ( ':hibernate-envers' )
reportAggregation project ( ':hibernate-graalvm' )
reportAggregation project ( ':hibernate-hikaricp' )
reportAggregation project ( ':hibernate-jcache' )
reportAggregation project ( ':hibernate-micrometer' )
reportAggregation project ( ':hibernate-spatial' )
reportAggregation project ( ':hibernate-ant' )
2024-10-17 10:22:37 -04:00
reportAggregation project ( ':hibernate-maven-plugin' )
2024-03-19 08:16:21 -04:00
reportAggregation project ( ':hibernate-processor' )
2023-05-16 13:47:14 -04:00
asciidoctorGems 'rubygems:rouge:4.1.1'
2023-08-10 10:20:24 -04:00
core project ( ':hibernate-core' )
javadocSources project ( path: ':hibernate-core' , configuration: 'javadocSources' )
envers project ( ':hibernate-envers' )
javadocSources project ( path: ':hibernate-envers' , configuration: 'javadocSources' )
2024-12-15 19:09:51 -05:00
testing project ( ':hibernate-testing' )
2023-08-10 10:20:24 -04:00
spatial project ( ':hibernate-spatial' )
agroal project ( ':hibernate-agroal' )
c3p0 project ( ':hibernate-c3p0' )
hikaricp project ( ':hibernate-hikaricp' )
jcache project ( ':hibernate-jcache' )
2024-03-19 08:16:21 -04:00
jpamodelgen project ( ':hibernate-processor' )
2023-08-10 10:20:24 -04:00
javadocClasspath libs . loggingAnnotations
javadocClasspath jakartaLibs . validation
javadocClasspath jakartaLibs . cdi
javadocClasspath jakartaLibs . jacc
javadocClasspath jakartaLibs . jsonbApi
javadocClasspath libs . ant
2024-12-01 07:37:51 -05:00
javadocClasspath jdbcLibs . postgresql
2023-08-10 10:20:24 -04:00
javadocClasspath libs . jackson
javadocClasspath gradleApi ( )
javadocClasspath libs . jacksonXml
2024-12-01 07:37:51 -05:00
javadocClasspath jdbcLibs . oracle
2016-01-13 01:28:20 -05:00
}
2013-11-22 15:51:56 -05:00
2016-03-22 09:16:21 -04:00
2018-04-30 11:38:09 -04:00
if ( project . ormVersion . isSnapshot ) {
2018-01-22 12:28:24 -05:00
// only run the ci build tasks for SNAPSHOT versions
2023-04-01 10:33:34 -04:00
tasks . register ( 'ciBuild' ) { dependsOn clean }
2022-03-15 13:15:56 -04:00
tasks . release . enabled false
2018-01-22 12:28:24 -05:00
}
else {
2023-01-30 11:34:42 -05:00
tasks . release . dependsOn clean
2018-01-22 12:28:24 -05:00
}
2023-08-10 10:20:24 -04:00
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-08-29 14:19:06 -04:00
// aggregated Javadoc
2023-08-10 10:20:24 -04:00
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-08-29 14:19:06 -04:00
def aggregateJavadocsTask = tasks . register ( "javadoc" , Javadoc ) {
2023-08-10 10:20:24 -04:00
group = "documentation"
2023-08-29 14:19:06 -04:00
description = 'Builds JavaDoc aggregated across all ORM sub-projects'
2023-08-10 10:20:24 -04:00
destinationDir = mkdir ( layout . buildDirectory . file ( 'javadocs' ) )
2023-08-15 14:38:31 -04:00
source = configurations . javadocSources
classpath = configurations . javadocClasspath
2023-08-10 10:20:24 -04:00
configure ( options ) {
2023-08-29 14:19:06 -04:00
overview = rootProject . file ( "shared/javadoc/overview.html" )
2023-08-15 14:38:31 -04:00
windowTitle = 'Hibernate Javadocs'
docTitle = "Hibernate Javadoc ($project.version)"
2023-08-29 14:19:06 -04:00
}
if ( jdkVersions . explicit ) {
2023-08-15 14:38:31 -04:00
// setJFlags(
// getProperty( 'toolchain.javadoc.jvmargs' ).toString().
// split( ' ' ).toList().findAll( { !it.isEmpty() } )
// )
2023-08-10 10:20:24 -04:00
// Display version of Java tools
doFirst {
if ( javadocTool . present ) {
2023-08-29 14:19:06 -04:00
logger . lifecycle "Building aggregated javadoc with '${javadocTool.get().metadata.installationPath}'"
2023-08-10 10:20:24 -04:00
}
}
}
2023-08-15 14:38:31 -04:00
doFirst {
def javaLanguageVersion = javadocTool . present
? javadocTool . get ( ) . metadata . languageVersion
: JavaLanguageVersion . of ( JavaVersion . current ( ) . name )
if ( javaLanguageVersion . asInt ( ) > 11 ) {
2023-08-29 14:19:06 -04:00
println "Aggregated Javadocs are bing built` using a JDK newer than version 11: \n" +
2023-08-15 14:38:31 -04:00
"\t* `stylesheet.css` will not be compatible\n" +
"\t* generating the User Guide settings fragment will not succeed"
}
}
2023-08-10 10:20:24 -04:00
}
2023-08-29 14:19:06 -04:00
apply from: rootProject . file ( 'gradle/javadoc.gradle' )
2021-08-02 19:04:41 -04:00
asciidoctorj {
2023-05-16 13:47:14 -04:00
requires 'rouge'
2023-05-11 10:54:58 -04:00
modules {
pdf {
version '2.3.7'
}
}
2021-08-02 19:04:41 -04:00
attributes icons: 'font' ,
experimental: true ,
2023-05-16 13:47:14 -04:00
'source-highlighter' : 'rouge' ,
2021-08-02 19:04:41 -04:00
majorMinorVersion: rootProject . ormVersion . family ,
2023-09-26 04:00:34 -04:00
fullVersion: rootProject . ormVersion . fullName ,
javaCompatibleVersions: jdks . versions . compatible . get ( ) ,
jakartaJpaVersion: rootProject . jakartaJpaVersion ,
jdbcVersion: jdks . versions . jdbc . get ( )
2021-08-02 19:04:41 -04:00
options logDocuments: true
2011-03-29 16:14:09 -04:00
}
2023-08-08 19:11:13 -04:00
2015-07-14 15:46:02 -04:00
// Topical Guides ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2011-03-29 16:14:09 -04:00
2023-08-08 19:11:13 -04:00
def renderTopicalGuideHtmlTask = tasks . register ( 'renderTopicalGuideHtml' , AsciidoctorTask ) { task - >
2023-05-11 10:54:58 -04:00
group = "Documentation"
2023-04-01 10:33:34 -04:00
description = 'Renders the Topical Guides in HTML format using Asciidoctor.'
inputs . property "hibernate-version" , project . ormVersion
2021-08-02 19:04:41 -04:00
2023-08-08 19:11:13 -04:00
sourceDir = file ( 'src/main/asciidoc/topical' )
outputDir = new File ( "$buildDir/asciidoc/topical/html_single" )
2021-08-02 19:04:41 -04:00
2018-04-16 16:28:08 -04:00
resources {
2023-08-08 19:11:13 -04:00
from ( 'src/main/asciidoc/topical/' ) {
2018-04-16 16:28:08 -04:00
include '**/images/**'
}
}
2011-03-29 16:14:09 -04:00
}
2023-08-08 19:11:13 -04:00
def renderTopicalGuidesTask = tasks . register ( 'renderTopicalGuides' , AsciidoctorTask ) { task - >
task . group = "Documentation"
task . description = 'Renders the Topical Guides in all formats.'
task . dependsOn renderTopicalGuideHtmlTask
}
2013-10-14 21:12:47 -04:00
2015-07-14 15:46:02 -04:00
// Getting Started Guides (quick starts) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2013-11-22 15:51:56 -05:00
2023-08-08 19:11:13 -04:00
def gettingStartedGuideHtmlDir = layout . buildDirectory . dir ( "asciidoc/quickstart/html_single" )
2023-09-01 12:40:30 -04:00
def buildTutorialZipTask = tasks . register ( 'buildTutorialZip' , Zip ) { task - >
from 'src/main/asciidoc/quickstart/tutorials'
destinationDirectory . set ( gettingStartedGuideHtmlDir )
archiveFileName = 'hibernate-tutorials.zip'
expand (
version: project . version ,
slf4j: "2.0.7" ,
junit: testLibs . versions . junit4 . get ( ) ,
2024-12-01 07:37:51 -05:00
h2: jdbcLibs . versions . h2 . get ( )
2023-09-01 12:40:30 -04:00
)
}
2023-08-08 19:11:13 -04:00
def renderGettingStartedGuideHtmlTask = tasks . register ( 'renderGettingStartedGuideHtmlTask' , AsciidoctorTask ) { task - >
2023-05-11 10:54:58 -04:00
group = "Documentation"
2023-06-15 17:52:49 -04:00
description = 'Renders the Getting Started Guides (quickstarts) in HTML format using Asciidoctor.'
2023-04-01 10:33:34 -04:00
inputs . property "hibernate-version" , project . ormVersion
2023-09-01 12:40:30 -04:00
finalizedBy buildTutorialZipTask
2021-08-02 19:04:41 -04:00
2023-08-08 19:11:13 -04:00
sourceDir = file ( 'src/main/asciidoc/quickstart/guides' )
sources 'index.adoc'
outputDir = gettingStartedGuideHtmlDir
2023-06-15 17:52:49 -04:00
attributes linkcss: true ,
2023-08-08 19:11:13 -04:00
stylesheet: "css/hibernate.css" ,
docinfo: 'private' ,
jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
2023-06-15 17:52:49 -04:00
resources {
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-06-15 17:52:49 -04:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-06-15 17:52:49 -04:00
include 'css/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-06-15 17:52:49 -04:00
include 'js/**'
}
}
2013-10-31 07:08:36 -04:00
}
2023-08-08 19:11:13 -04:00
def renderGettingStartedGuidePdfTask = tasks . register ( 'renderGettingStartedGuidePdf' , AsciidoctorPdfTask ) { task - >
2023-06-15 17:52:49 -04:00
group = "Documentation"
description = 'Renders the Getting Started Guides in PDF format using Asciidoctor.'
inputs . property "hibernate-version" , project . ormVersion
baseDir = file ( 'src/main/asciidoc/quickstart/guides' )
2023-08-08 19:11:13 -04:00
sourceDir = file ( 'src/main/asciidoc/quickstart/guides' )
sources 'index.adoc'
outputDir = layout . buildDirectory . dir ( "asciidoc/quickstart/pdf" )
2023-06-15 17:52:49 -04:00
attributes jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
}
2016-02-11 16:59:13 -05:00
2023-08-08 19:11:13 -04:00
def renderGettingStartedGuidesTask = tasks . register ( 'renderGettingStartedGuides' ) { task - >
task . group = "Documentation"
task . description = 'Renders the Getting Started Guide in all formats, as well as the acccompanying tutorial zip.'
task . dependsOn renderGettingStartedGuideHtmlTask , renderGettingStartedGuidePdfTask , buildTutorialZipTask
}
2016-02-11 16:59:13 -05:00
2023-05-11 10:54:58 -04:00
2023-08-08 19:11:13 -04:00
// Introduction ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-05-11 10:54:58 -04:00
2023-08-08 19:11:13 -04:00
def renderIntroductionHtmlTask = tasks . register ( 'renderIntroductionHtml' , AsciidoctorTask ) { task - >
2023-05-11 10:54:58 -04:00
group = "Documentation"
2023-02-21 08:36:00 -05:00
description = 'Renders the Introduction in HTML format using Asciidoctor.'
2023-05-11 10:54:58 -04:00
inputs . property "hibernate-version" , project . ormVersion
2023-02-21 08:36:00 -05:00
sourceDir = file ( 'src/main/asciidoc/introduction' )
2023-08-08 19:11:13 -04:00
sources 'Hibernate_Introduction.adoc'
2023-02-21 08:36:00 -05:00
outputDir = "$buildDir/asciidoc/introduction/html_single"
attributes linkcss: true ,
2023-08-08 19:11:13 -04:00
stylesheet: "css/hibernate.css" ,
docinfo: 'private' ,
jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
2023-02-21 08:36:00 -05:00
resources {
2023-08-08 19:11:13 -04:00
from ( 'src/main/asciidoc/introduction/' ) {
2023-02-21 08:36:00 -05:00
include 'images/**'
2023-05-26 04:56:04 -04:00
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-05-26 04:56:04 -04:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-05-26 04:56:04 -04:00
include 'css/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-05-26 04:56:04 -04:00
include 'js/**'
}
}
}
2023-08-08 19:11:13 -04:00
def renderIntroductionPdfTask = tasks . register ( 'renderIntroductionPdf' , AsciidoctorPdfTask ) { task - >
2023-05-26 04:56:04 -04:00
group = "Documentation"
2023-08-08 19:11:13 -04:00
description = 'Renders the Introduction in PDF format using Asciidoctor.'
2023-05-26 04:56:04 -04:00
inputs . property "hibernate-version" , project . ormVersion
2023-08-08 19:11:13 -04:00
baseDir = file ( 'src/main/asciidoc/introduction' )
sourceDir = file ( 'src/main/asciidoc/introduction' )
sources 'Hibernate_Introduction.adoc'
outputDir = "$buildDir/asciidoc/introduction/pdf"
2023-05-26 04:56:04 -04:00
attributes jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
}
2023-08-08 19:11:13 -04:00
//noinspection GroovyUnusedAssignment
def renderIntroductionGuidesTask = tasks . register ( "renderIntroductionGuides" ) { task - >
2023-05-26 04:56:04 -04:00
group = "Documentation"
2023-08-08 19:11:13 -04:00
description = 'Renders the Introduction Guide in all formats.'
task . dependsOn renderIntroductionHtmlTask , renderIntroductionPdfTask
2023-05-26 04:56:04 -04:00
tasks . buildDocs . dependsOn task
2023-08-08 19:11:13 -04:00
}
2023-05-26 04:56:04 -04:00
2023-08-08 19:11:13 -04:00
// HQL Guide ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-05-26 04:56:04 -04:00
2023-08-08 19:11:13 -04:00
def renderQueryLanguageGuideHtmlTask = tasks . register ( 'renderQueryLanguageGuideHtml' , AsciidoctorTask ) { task - >
task . group = "Documentation"
task . description = 'Renders the Query Language document in HTML format using Asciidoctor.'
task . inputs . property "hibernate-version" , project . ormVersion
task . sourceDir = file ( 'src/main/asciidoc/querylanguage' )
task . sources 'Hibernate_Query_Language.adoc'
task . outputDir = layout . buildDirectory . dir ( "asciidoc/querylanguage/html_single" )
task . attributes linkcss: true ,
stylesheet: "css/hibernate.css" ,
docinfo: 'private' ,
jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
task . resources {
from ( 'src/main/asciidoc/querylanguage/' ) {
2023-05-26 04:56:04 -04:00
include 'images/**'
2023-02-21 08:36:00 -05:00
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-02-21 08:36:00 -05:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-02-21 08:36:00 -05:00
include 'css/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-02-21 08:36:00 -05:00
include 'js/**'
}
}
}
2023-08-08 19:11:13 -04:00
def renderQueryLanguageGuidePdfTask = tasks . register ( 'renderQueryLanguageGuidePdf' , AsciidoctorPdfTask ) { task - >
group = "Documentation"
description = 'Renders the Query Language document in PDF format using Asciidoctor.'
inputs . property "hibernate-version" , project . ormVersion
sourceDir = file ( 'src/main/asciidoc/querylanguage' )
baseDir = file ( 'src/main/asciidoc/querylanguage' )
sources {
include 'Hibernate_Query_Language.adoc'
}
outputDir = layout . buildDirectory . dir ( "asciidoc/querylanguage/pdf" )
attributes jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
}
2024-04-15 15:22:27 -04:00
def renderRepositoriesHtmlTask = tasks . register ( 'renderRepositoriesHtml' , AsciidoctorTask ) { task - >
task . group = "Documentation"
task . description = 'Renders the Hibernate Data Repositories document in HTML format using Asciidoctor.'
task . inputs . property "hibernate-version" , project . ormVersion
task . sourceDir = file ( 'src/main/asciidoc/repositories' )
task . sources 'Hibernate_Data_Repositories.adoc'
task . outputDir = layout . buildDirectory . dir ( "asciidoc/repositories/html_single" )
task . attributes linkcss: true ,
stylesheet: "css/hibernate.css" ,
docinfo: 'private' ,
jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
task . resources {
from ( 'src/main/asciidoc/repositories/' ) {
include 'images/**'
}
from ( 'src/main/style/asciidoctor' ) {
include 'images/**'
}
from ( 'src/main/style/asciidoctor' ) {
include 'css/**'
}
from ( 'src/main/style/asciidoctor' ) {
include 'js/**'
}
}
}
def renderRepositoriesPdfTask = tasks . register ( 'renderRepositoriesPdf' , AsciidoctorPdfTask ) { task - >
group = "Documentation"
description = 'Renders the Hibernate Data Repositories document in PDF format using Asciidoctor.'
inputs . property "hibernate-version" , project . ormVersion
sourceDir = file ( 'src/main/asciidoc/repositories' )
baseDir = file ( 'src/main/asciidoc/repositories' )
sources {
include 'Hibernate_Data_Repositories.adoc'
}
outputDir = layout . buildDirectory . dir ( "asciidoc/repositories/pdf" )
attributes jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
}
2023-08-08 19:11:13 -04:00
//noinspection GroovyUnusedAssignment
def renderQueryLanguageGuidesTask = tasks . register ( 'renderQueryLanguageGuides' ) { task - >
group = "Documentation"
description = 'Renders Query Language Guide in all formats.'
task . dependsOn renderQueryLanguageGuideHtmlTask
task . dependsOn renderQueryLanguageGuidePdfTask
tasks . buildDocs . dependsOn task
}
2024-04-15 15:22:27 -04:00
//noinspection GroovyUnusedAssignment
def renderRepositoriesTask = tasks . register ( 'renderRepositories' ) { task - >
group = "Documentation"
description = 'Renders Hibernate Data Repositories documentation in all formats.'
task . dependsOn renderRepositoriesHtmlTask
task . dependsOn renderRepositoriesPdfTask
tasks . buildDocs . dependsOn task
}
2023-08-08 19:11:13 -04:00
2016-08-02 09:45:36 -04:00
// User Guide ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-08-10 17:15:57 -04:00
settingsDocumentation {
2023-08-15 14:38:31 -04:00
anchorNameBase = "settings"
2023-08-10 10:20:24 -04:00
sections {
2023-08-15 14:38:31 -04:00
compliance {
explicitPosition = 1
summary = "Jakarta Persistence Compliance Settings"
description = "Settings which control various aspects of compliance with the Jakarta Persistence specification "
settingsClassName "org.hibernate.cfg.JpaComplianceSettings"
}
persistence {
explicitPosition = 2
summary = "Persistence Unit Settings"
description = "Settings related to the creation and configuration of a persistence-unit - SessionFactory and EntityManagerFactory"
settingsClassName "org.hibernate.cfg.PersistenceSettings"
}
jdbc {
explicitPosition = 3
summary = "JDBC Settings"
description = "Settings which control various aspects of how Hibernate interacts with JDBC"
settingsClassName "org.hibernate.cfg.JdbcSettings"
}
c3p0 {
explicitPosition = 4
summary = "C3P0 Connection Pool Settings"
description = "Settings related to integrating with the C3P0 Connection pool"
settingsClassName "org.hibernate.cfg.C3p0Settings"
}
2023-12-20 20:49:08 -05:00
transaction {
2023-08-15 14:38:31 -04:00
explicitPosition = 6
2024-09-26 12:47:37 -04:00
summary = "Transaction Environment Settings"
2023-12-20 20:49:08 -05:00
description = "Settings which control how Hibernate interacts with and manages transactions"
settingsClassName "org.hibernate.cfg.TransactionSettings"
}
mapping {
explicitPosition = 7
2023-08-15 14:38:31 -04:00
summary = "Domain Mapping Settings"
description = "Settings which control how domain mappings are handled"
settingsClassName "org.hibernate.cfg.MappingSettings"
}
2023-12-20 20:49:08 -05:00
fetch {
explicitPosition = 8
summary = "Fetch Related Settings"
description = "Settings which control aspects of fetching data from the database"
settingsClassName "org.hibernate.cfg.FetchSettings"
}
batch {
explicitPosition = 9
summary = "JDBC Batch Settings"
description = "Settings which control how Hibernate performs JDBC batching updating"
settingsClassName "org.hibernate.cfg.BatchSettings"
}
2023-08-15 14:38:31 -04:00
environment {
summary = "Runtime Environment Settings"
description = "Settings related to JNDI and ClassLoaders"
settingsClassName "org.hibernate.cfg.EnvironmentSettings"
}
2023-12-20 20:49:08 -05:00
tenancy {
summary = "Multi-tenancy Settings"
description = "Settings related multi-tenancy support"
settingsClassName "org.hibernate.cfg.MultiTenancySettings"
}
cdi {
summary = "CDI Settings"
description = "Settings related to CDI"
settingsClassName "org.hibernate.cfg.ManagedBeanSettings"
}
2023-08-15 14:38:31 -04:00
schema {
summary = "Schema Tooling Settings"
description = "Settings which control the creation, dropping, update and validation of database schemas"
settingsClassName "org.hibernate.cfg.SchemaToolingSettings"
}
bytecode {
summary = "Bytecode Manipulation Settings"
description = "Settings which control Hibernate's BytecodeProvider used for bytecode manipulation"
settingsClassName "org.hibernate.cfg.BytecodeSettings"
}
cache {
summary = "Second-level Cache Settings"
description = "Settings which control Hibernate's second-level caching"
settingsClassName "org.hibernate.cfg.CacheSettings"
settingsClassName "org.hibernate.cache.jcache.ConfigSettings"
}
query {
summary = "Query Settings"
description = "Settings which control various parts of Hibernate's Query handling"
settingsClassName "org.hibernate.cfg.QuerySettings"
}
stats {
summary = "Statistics Settings"
description = "Settings which control the collection of statistics"
settingsClassName "org.hibernate.cfg.StatisticsSettings"
}
validation {
2024-12-16 13:43:36 -05:00
summary = "Jakarta Validation Integration Settings"
2023-08-15 14:38:31 -04:00
description = "Settings used in the integration of Jakarta Validation"
settingsClassName "org.hibernate.cfg.ValidationSettings"
2023-08-10 10:20:24 -04:00
}
2023-11-16 04:05:39 -05:00
dialect {
summary = "Dialect Specific Settings"
description = "Settings used for dialect configuration when the database isn't available"
settingsClassName "org.hibernate.cfg.DialectSpecificSettings"
}
2023-08-10 10:20:24 -04:00
envers {
2023-08-15 14:38:31 -04:00
summary = "Audit/History Settings"
description = "Settings which control Hibernate's audit/history support (hibernate-envers)"
settingsClassName "org.hibernate.envers.configuration.EnversSettings"
2023-08-10 10:20:24 -04:00
}
2023-08-15 14:38:31 -04:00
spatial {
summary = "Hibernate Spatial Settings"
description = "Settings which control Hibernate's support for spatial data (hibernate-spatial)"
settingsClassName "org.hibernate.spatial.HibernateSpatialConfigurationSettings"
settingsClassName "org.hibernate.spatial.integration.SpatialService"
}
2023-12-20 20:49:08 -05:00
session {
summary = "Session Event Settings"
description = "Settings related to Session events"
settingsClassName "org.hibernate.cfg.SessionEventSettings"
}
2023-08-15 14:38:31 -04:00
misc {
summary = "Miscellaneous Settings"
description = "Miscellaneous Settings"
settingsClassName "org.hibernate.cfg.AvailableSettings"
2023-08-10 10:20:24 -04:00
}
}
}
2023-08-10 17:15:57 -04:00
def generateSettingsDocTask = tasks . named ( "generateSettingsDoc" ) {
dependsOn aggregateJavadocsTask
2023-08-15 14:38:31 -04:00
doFirst {
def javadoc = aggregateJavadocsTask . get ( )
def javaLanguageVersion = javadoc . javadocTool . present
? javadoc . javadocTool . get ( ) . metadata . languageVersion
: JavaLanguageVersion . of ( JavaVersion . current ( ) . name )
if ( javaLanguageVersion . asInt ( ) > 11 ) {
2023-08-29 14:19:06 -04:00
println "Aggregated Javadocs was built using a JDK newer than version 11; generating the settings User Guide fragment will not succeed"
2023-08-15 14:38:31 -04:00
}
}
2023-08-10 17:15:57 -04:00
}
2023-08-08 19:11:13 -04:00
def renderUserGuideHtmlTask = tasks . register ( 'renderUserGuideHtml' , AsciidoctorTask ) { task - >
2023-05-11 10:54:58 -04:00
group = "Documentation"
2023-04-01 10:33:34 -04:00
description = 'Renders the User Guides in HTML format using Asciidoctor.'
inputs . property "hibernate-version" , project . ormVersion
2023-08-15 14:38:31 -04:00
inputs . file ( generateSettingsDocTask . get ( ) . outputFile )
2021-08-02 19:04:41 -04:00
2023-09-26 04:00:34 -04:00
dependsOn generateSettingsDocTask , generateDialectTableReport
2023-01-23 13:54:31 -05:00
2023-08-08 19:11:13 -04:00
sourceDir = file ( 'src/main/asciidoc/userguide' )
sources {
include 'Hibernate_User_Guide.adoc'
}
outputDir = "$buildDir/asciidoc/userguide/html_single"
2021-08-02 19:04:41 -04:00
attributes linkcss: true ,
2023-08-08 19:11:13 -04:00
stylesheet: "css/hibernate.css" ,
docinfo: 'private' ,
2023-09-26 04:00:34 -04:00
jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/" ,
2024-07-16 05:07:51 -04:00
'generated-report-dir' : layout . buildDirectory . dir ( 'orm/generated' ) . get ( )
2017-09-12 08:40:34 -04:00
resources {
2023-08-08 19:11:13 -04:00
from ( 'src/main/asciidoc/userguide/' ) {
2023-04-01 10:33:34 -04:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2016-03-02 08:16:13 -05:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2016-02-29 08:06:03 -05:00
include 'css/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2017-09-12 08:40:34 -04:00
include 'js/**'
}
2023-04-01 10:33:34 -04:00
}
2016-01-11 10:25:13 -05:00
}
2023-08-08 19:11:13 -04:00
def renderUserGuidesTask = tasks . register ( 'renderUserGuides' ) { task - >
task . group = "Documentation"
task . description = 'Renders the User Guides in all formats.'
task . dependsOn ( renderUserGuideHtmlTask )
}
2016-08-02 09:45:36 -04:00
// Integration Guide ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-08-08 19:11:13 -04:00
def renderIntegrationGuideHtmlTask = tasks . register ( "renderIntegrationGuideHtml" , AsciidoctorTask ) { task - >
2023-04-01 10:33:34 -04:00
group = "Documentation"
2016-08-02 09:45:36 -04:00
description = 'Renders the User Guides in HTML format using Asciidoctor.'
2023-04-01 10:33:34 -04:00
inputs . property "hibernate-version" , project . ormVersion
2021-08-02 19:04:41 -04:00
2016-08-02 09:45:36 -04:00
sourceDir = file ( 'src/main/asciidoc/integrationguide' )
2018-06-26 04:49:57 -04:00
sources {
include 'Hibernate_Integration_Guide.adoc'
}
2021-08-02 19:04:41 -04:00
2022-03-31 12:01:06 -04:00
outputDir = project . layout . buildDirectory . dir ( 'asciidoc/integrationguide/html_single' )
2021-08-02 19:04:41 -04:00
attributes linkcss: true ,
2023-08-08 19:11:13 -04:00
stylesheet: "css/hibernate.css"
2021-08-02 19:04:41 -04:00
2016-08-02 09:45:36 -04:00
resources {
2023-08-08 19:11:13 -04:00
from ( 'src/main/asciidoc/integrationguide/' ) {
2016-08-02 09:45:36 -04:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2016-08-02 09:45:36 -04:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2016-08-02 09:45:36 -04:00
include 'css/**'
2022-03-08 12:26:55 -05:00
}
}
2023-08-08 19:11:13 -04:00
}
def renderIntegrationGuidesTask = tasks . register ( "renderIntegrationGuides" ) { task - >
group = "Documentation"
description = 'Renders all formats of the User Guide.'
task . dependsOn renderIntegrationGuideHtmlTask
tasks . buildDocs . dependsOn task
}
2022-03-08 12:26:55 -05:00
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Migration Guide
2023-09-01 12:40:30 -04:00
def migrationGuideSourceStagingDir = layout . buildDirectory . dir ( "tmp/asciidoc/migration-guide" )
def copyMigrationGuideTask = tasks . register ( "copyMigrationGuide" , Copy ) { task - >
group = "Documentation"
description = "Copies migration-guide.adoc in preparation for rendering."
inputs . property "hibernate-version" , project . ormVersion
from rootProject . layout . projectDirectory . file ( "migration-guide.adoc" )
into migrationGuideSourceStagingDir
}
2023-08-08 19:11:13 -04:00
def renderMigrationGuideTask = tasks . register ( "renderMigrationGuide" , AsciidoctorTask ) { task - >
2023-04-01 10:33:34 -04:00
group = "Documentation"
2023-09-01 12:40:30 -04:00
description = "Renders the Migration Guide in HTML format using Asciidoctor."
2023-08-08 19:11:13 -04:00
2023-09-01 12:40:30 -04:00
dependsOn copyMigrationGuideTask
2023-04-01 10:33:34 -04:00
inputs . property "hibernate-version" , project . ormVersion
2022-03-08 12:26:55 -05:00
2023-09-01 12:40:30 -04:00
sourceDir = migrationGuideSourceStagingDir
outputDir = project . layout . buildDirectory . dir ( 'asciidoc/migration-guide' )
2022-03-08 12:26:55 -05:00
attributes linkcss: true ,
2023-08-08 19:11:13 -04:00
stylesheet: "css/hibernate.css"
2022-03-08 12:26:55 -05:00
resources {
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2022-03-08 12:26:55 -05:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2022-03-08 12:26:55 -05:00
include 'css/**'
2016-08-02 09:45:36 -04:00
}
}
2023-08-08 19:11:13 -04:00
}
2016-01-11 10:25:13 -05:00
2022-03-31 12:01:06 -04:00
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ORM Reports
2023-08-08 19:11:13 -04:00
def renderLoggingReportTask = tasks . register ( 'renderLoggingReport' , AsciidoctorTask ) { task - >
task . group = "hibernate-reports"
task . description = 'Renders the logging report (generated LoggingReportTask) by in HTML format using Asciidoctor.'
task . dependsOn "generateLoggingReport"
2022-03-31 12:01:06 -04:00
2023-08-08 19:11:13 -04:00
task . inputs . property "version" , project . ormVersion
2022-03-31 12:01:06 -04:00
2023-08-08 19:11:13 -04:00
task . sourceDir = layout . buildDirectory . dir ( 'orm/generated/logging' )
task . sources 'logging.adoc'
2022-03-31 12:01:06 -04:00
2023-08-08 19:11:13 -04:00
task . outputDir = project . layout . buildDirectory . dir ( 'asciidoc/logging' )
2022-03-31 12:01:06 -04:00
2023-08-08 19:11:13 -04:00
task . attributes linkcss: true ,
stylesheet: "css/hibernate.css"
2022-03-31 12:01:06 -04:00
2023-08-08 19:11:13 -04:00
task . resources {
from ( 'src/main/style/asciidoctor' ) {
2022-03-31 12:01:06 -04:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2022-03-31 12:01:06 -04:00
include 'css/**'
}
}
}
2023-08-08 19:11:13 -04:00
def renderDialectReportTask = tasks . register ( 'renderDialectReport' , AsciidoctorTask ) { task - >
task . group = "hibernate-reports"
task . description = 'Renders the supported Dialect report in HTML format using Asciidoctor.'
task . dependsOn "generateDialectReport"
2023-09-29 04:42:47 -04:00
task . dependsOn "generateDialectTableReport"
2023-08-03 09:21:22 -04:00
2023-08-08 19:11:13 -04:00
task . inputs . property "version" , project . ormVersion
2023-04-27 12:27:26 -04:00
2023-08-08 19:11:13 -04:00
task . sourceDir = layout . buildDirectory . dir ( 'orm/generated/dialect' )
task . sources 'dialect.adoc'
2023-04-27 12:27:26 -04:00
2023-08-08 19:11:13 -04:00
task . outputDir = project . layout . buildDirectory . dir ( 'asciidoc/dialect' )
2023-04-27 12:27:26 -04:00
2023-08-08 19:11:13 -04:00
task . attributes linkcss: true ,
stylesheet: "css/hibernate.css"
2023-04-27 12:27:26 -04:00
2023-08-08 19:11:13 -04:00
task . resources {
from ( 'src/main/style/asciidoctor' ) {
2023-04-27 12:27:26 -04:00
include 'images/**'
}
2023-08-08 19:11:13 -04:00
from ( 'src/main/style/asciidoctor' ) {
2023-04-27 12:27:26 -04:00
include 'css/**'
}
}
}
2023-08-08 19:11:13 -04:00
def generateReportsTask = tasks . named ( "generateReports" ) {
dependsOn renderLoggingReportTask , renderDialectReportTask
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Overall grouping tasks
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def buildDocsTask = tasks . register ( 'buildDocs' ) { task - >
task . group = 'Documentation'
task . description = 'Grouping task for performing all documentation building tasks'
2023-08-10 10:20:24 -04:00
task . dependsOn aggregateJavadocsTask
2023-08-08 19:11:13 -04:00
task . dependsOn renderGettingStartedGuidesTask
task . dependsOn renderIntroductionGuidesTask
task . dependsOn renderUserGuidesTask
task . dependsOn renderQueryLanguageGuidesTask
2024-04-15 16:13:16 -04:00
task . dependsOn renderRepositoriesTask
2023-08-08 19:11:13 -04:00
task . dependsOn renderIntegrationGuidesTask
task . dependsOn renderTopicalGuidesTask
task . dependsOn generateReportsTask
task . dependsOn renderMigrationGuideTask
}
//noinspection GroovyUnusedAssignment
def buildDocsForPublishingTask = tasks . register ( 'buildDocsForPublishing' ) { task - >
task . group = 'Documentation'
task . description = 'Grouping task for building all documentation for publishing (release)'
task . dependsOn buildDocsTask
}
2022-03-31 12:01:06 -04:00
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-03-11 15:45:43 -05:00
2023-08-08 19:11:13 -04:00
tasks . withType ( AsciidoctorTask ) . configureEach {
2021-08-05 11:04:54 -04:00
baseDirFollowsSourceDir ( )
outputOptions {
separateOutputDirs = false
backends 'html5'
}
}