Skip to content

Commit c2b24c6

Browse files
authored
Merge pull request #14895 from jprinet/fix/build-performance-issues
Fix build performance issues
2 parents ef08b0b + db0b677 commit c2b24c6

File tree

17 files changed

+84
-33
lines changed

17 files changed

+84
-33
lines changed

build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717

1818
import java.time.Instant
19+
import java.time.LocalDate
1920
import java.time.ZoneOffset
2021
import java.time.format.DateTimeFormatter
2122

@@ -26,7 +27,9 @@ ext {
2627
.map(Long::parseLong)
2728
.map(Instant::ofEpochSecond)
2829
.orElseGet(Instant::now)
29-
formattedBuildDate = DateTimeFormatter.ISO_INSTANT.format(buildInstant)
30+
formattedBuildDate = System.getenv("SOURCE_DATE_EPOCH") ?
31+
DateTimeFormatter.ISO_INSTANT.format(buildInstant) :
32+
DateTimeFormatter.ISO_DATE.format(LocalDate.ofInstant(buildInstant as Instant, ZoneOffset.UTC))
3033
buildDate = (buildInstant as Instant).atZone(ZoneOffset.UTC) // for reproducible builds
3134

3235
grailsVersion = projectVersion

grails-data-docs/guide-developer/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def asciidoctorAttributes = [
3333
]
3434

3535
tasks.named('asciidoctor', AsciidoctorTask) { AsciidoctorTask it ->
36-
inputs.dir project.layout.projectDirectory.dir('src/main/docs')
36+
inputs.dir(project.layout.projectDirectory.dir('src/main/docs')).withPropertyName('docsSrcDir').withPathSensitivity(PathSensitivity.RELATIVE)
3737
outputs.dir project.layout.buildDirectory.dir('docs')
3838

3939
it.jvm {

grails-data-docs/guide-rx/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def asciidoctorAttributes = [
3333
]
3434

3535
tasks.named('asciidoctor', AsciidoctorTask) { AsciidoctorTask it ->
36-
inputs.dir project.layout.projectDirectory.dir('src/main/docs')
36+
inputs.dir(project.layout.projectDirectory.dir('src/main/docs')).withPropertyName('docsSrcDir').withPathSensitivity(PathSensitivity.RELATIVE)
3737
outputs.dir project.layout.buildDirectory.dir('docs')
3838

3939
it.jvm {

grails-data-docs/guide-whats-new/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def asciidoctorAttributes = [
3333
]
3434

3535
tasks.named('asciidoctor', AsciidoctorTask) { AsciidoctorTask it ->
36-
inputs.dir project.layout.projectDirectory.dir('src/main/docs')
36+
inputs.dir(project.layout.projectDirectory.dir('src/main/docs')).withPropertyName('docsSrcDir').withPathSensitivity(PathSensitivity.RELATIVE)
3737
outputs.dir project.layout.buildDirectory.dir('docs')
3838

3939
it.jvm {

grails-data-docs/stage/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ combinedGroovydoc.configure { Groovydoc task ->
7070
task.classpath = files(sources.collect{ SourceSet it -> it.compileClasspath.filter(File.&isDirectory) }.flatten().unique())
7171
task.destinationDir = project.layout.buildDirectory.dir('data-api/api').get().asFile
7272

73-
task.inputs.files(task.source)
73+
task.inputs.files(task.source).withPropertyName("groovyDocSrc").withPathSensitivity(PathSensitivity.RELATIVE)
7474
task.outputs.dir(task.destinationDir)
7575
}
7676

grails-data-hibernate5/docs/build.gradle

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ dependencies {
5858
}
5959

6060
tasks.named('asciidoctor', AsciidoctorTask) { AsciidoctorTask it ->
61-
it.inputs.dir layout.projectDirectory.dir('src/docs/asciidoc')
61+
it.inputs.dir(layout.projectDirectory.dir('src/docs/asciidoc')).withPropertyName('docsSrcDir').withPathSensitivity(PathSensitivity.RELATIVE)
6262
it.outputs.dir layout.buildDirectory.dir('asciidoc/manual')
6363

6464
it.jvm {
@@ -83,8 +83,7 @@ tasks.named('asciidoctor', AsciidoctorTask) { AsciidoctorTask it ->
8383
'pluginVersion': projectVersion,
8484
'groupId': project.group,
8585
'artifactId': project.name,
86-
'sourcedir': "$project.rootDir",
87-
'migrationPluginExamplesDir': rootProject.findProject(':grails-data-hibernate5-dbmigration').layout.projectDirectory.dir('src/integration-test/resources').asFile.absolutePath,
86+
'migrationPluginExamplesDir': project.layout.projectDirectory.dir('src/docs/asciidoc/databaseMigration').asFile.relativePath(rootProject.findProject(':grails-data-hibernate5-dbmigration').layout.projectDirectory.asFile),
8887
'migrationPluginGroupId': rootProject.findProject(':grails-data-hibernate5-dbmigration').group,
8988
'migrationPluginArtifactId': rootProject.findProject(':grails-data-hibernate5-dbmigration').name,
9089
'liquibaseHibernate5Version': liquibaseHibernate5Version

grails-data-hibernate5/docs/src/docs/asciidoc/databaseMigration/configuration.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ NOTE: All the above configs can be used for multiple datasources
5151
If secondary dataSource named "second" is configured in application.yml
5252
[source,yaml]
5353
----
54-
include::{migrationPluginExamplesDir}/application-multiple-datasource.yml[lines=11..29]
54+
include::{migrationPluginExamplesDir}/src/integration-test/resources/application-multiple-datasource.yml[lines=11..29]
5555
----
5656

5757
The configuration for this data source would be:

grails-data-mongodb/docs/build.gradle

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ dependencies {
7676
tasks.named('asciidoctor', AsciidoctorTask) { AsciidoctorTask it ->
7777
dependsOn('resolveMongodbVersion')
7878

79-
it.inputs.dir project.layout.projectDirectory.dir('src/docs/asciidoc')
79+
it.inputs.dir(project.layout.projectDirectory.dir('src/docs/asciidoc')).withPropertyName('docsSrcDir').withPathSensitivity(PathSensitivity.RELATIVE)
8080
it.outputs.dir layout.buildDirectory.dir('asciidoc/manual')
8181

8282
it.jvm {
@@ -86,15 +86,17 @@ tasks.named('asciidoctor', AsciidoctorTask) { AsciidoctorTask it ->
8686
it.sourceDir layout.projectDirectory.dir('src/docs/asciidoc')
8787
it.outputDir = layout.buildDirectory.dir('asciidoc/manual')
8888
it.attributes = [
89-
'experimental' : 'true',
90-
'compat-mode' : 'true',
91-
'toc' : 'left',
92-
'icons' : 'font',
93-
'reproducible' : '',
94-
'version' : projectVersion,
95-
'pluginVersion' : projectVersion,
96-
'mongoDriverVersion': resolveMongodbVersion.resolved,
97-
'sourcedir' : "$project.rootDir"
89+
'experimental' : 'true',
90+
'compat-mode' : 'true',
91+
'toc' : 'left',
92+
'icons' : 'font',
93+
'reproducible' : '',
94+
'version' : projectVersion,
95+
'pluginVersion' : projectVersion,
96+
'mongoDriverVersion' : resolveMongodbVersion.resolved,
97+
'grailsTestExamplesMongodbBaseDir' : project.layout.projectDirectory.dir('src/docs/asciidoc').asFile.relativePath(rootProject.findProject(':grails-test-examples-mongodb-base').layout.projectDirectory.asFile),
98+
'grailsTestExamplesMongodbHibernate5Dir' : project.layout.projectDirectory.dir('src/docs/asciidoc').asFile.relativePath(rootProject.findProject(':grails-test-examples-mongodb-hibernate5').layout.projectDirectory.asFile),
99+
'grailsDataMongodbCoreDir' : project.layout.projectDirectory.dir('src/docs/asciidoc/querying').asFile.relativePath(rootProject.findProject(':grails-data-mongodb-core').layout.projectDirectory.asFile)
98100
]
99101
}
100102

grails-data-mongodb/docs/src/docs/asciidoc/querying/queryingBasics.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ If you wish to execute a native MongoDB query you can use the `find` method that
2424

2525
[source,groovy]
2626
----
27-
include::{sourcedir}/gorm/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy[tags=nativeImport]
27+
include::{grailsDataMongodbCoreDir}/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy[tags=nativeImport]
2828
...
29-
include::{sourcedir}/gorm/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy[tags=nativeFind,indent=0]
29+
include::{grailsDataMongodbCoreDir}/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy[tags=nativeFind,indent=0]
3030
----
3131

3232
The `find` method will return a https://api.mongodb.com/java/current/com/mongodb/client/FindIterable.html[FindIterable] instance that you can then use to further customize via https://api.mongodb.com/java/current/com/mongodb/client/model/Filters.html[filters], https://api.mongodb.com/java/current/com/mongodb/client/model/Sorts.html[sorting] and https://api.mongodb.com/java/current/com/mongodb/client/model/Projections.html[projections].
@@ -37,7 +37,7 @@ The `find` method will return instances of your domain class for each query. If
3737

3838
[source,groovy]
3939
----
40-
include::{sourcedir}/gorm/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy[tags=nativeImport]
40+
include::{grailsDataMongodbCoreDir}/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy[tags=nativeImport]
4141
...
42-
include::{sourcedir}/gorm/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy[tags=collectionFind,indent=0]
42+
include::{grailsDataMongodbCoreDir}/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy[tags=collectionFind,indent=0]
4343
----

grails-data-mongodb/docs/src/docs/asciidoc/testing.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,19 @@ It is preferable to use testcontainers to automatically run MongoDB in a contain
2828

2929
[source,groovy]
3030
----
31-
include::{sourcedir}/examples/base/src/test/groovy/functional/tests/EmbeddedMongoClient.groovy[]
31+
include::{grailsTestExamplesMongodbBaseDir}/src/test/groovy/functional/tests/EmbeddedMongoClient.groovy[]
3232
----
3333

3434
[source,groovy]
3535
----
36-
include::{sourcedir}/examples/base/src/test/groovy/functional/tests/LocalMongoUnitSpec.groovy[tags=structure]
36+
include::{grailsTestExamplesMongodbBaseDir}/src/test/groovy/functional/tests/LocalMongoUnitSpec.groovy[tags=structure]
3737
----
3838

3939
You can also use your own low-level `MongoClient` instance, as shown in the following example:
4040

4141
[source,groovy]
4242
----
43-
include::{sourcedir}/examples/base/src/test/groovy/functional/tests/BookUnitSpec.groovy[]
43+
include::{grailsTestExamplesMongodbBaseDir}/src/test/groovy/functional/tests/BookUnitSpec.groovy[]
4444
----
4545

4646
Note that the default implementation is to scan your classpath searching for domain classes, from the package defined
@@ -49,5 +49,5 @@ is large, classpath scanning may be slow, so it's better to override the method
4949

5050
[source,groovy]
5151
----
52-
include::{sourcedir}/examples/hibernate5/src/test/groovy/functional/tests/BookFongoSpec.groovy[tags=getDomainClasses,indent=0]
52+
include::{grailsTestExamplesMongodbHibernate5Dir}/src/test/groovy/functional/tests/BookFongoSpec.groovy[tags=getDomainClasses,indent=0]
5353
----

0 commit comments

Comments
 (0)