This is an automated email from the ASF dual-hosted git repository.
codeconsole pushed a change to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
from c4f60ce5f2 Merge pull request #16187 from apache/spring-boot-4.1.1
add dd8e310644 Define tag handlers as methods in PlainTextMailTagLib
add 7c5b93fb14 Generate a tag library index at compile time
add 8afe580f86 Resolve GSP tag calls against the compile-time index
add c992f603e0 Precompute tag method argument binding
add 90075c3c8b Cover tag library index merging across jars
add f621337ae6 Make the tag index agree with runtime in three more cases
add d98ea0d684 Leave a tag declared twice to runtime resolution
add ba48005ad8 State the tag discovery rules once
add 3c847aa8b5 Generate the tag library index before compilation
add 26da0a12c5 Register tag libraries from the compiled index
add b525a4a340 Dispatch tags without writing to a metaclass
add 7e10994139 Report an unrecognised tag as a compilation error
add 02a8e79925 Add an explicit entry point for invoking a resolved tag
add b34de798bb Stop installing tags onto tag library metaclasses
add 9412856f12 Compile a call to a known tag into a direct invocation
add d6a204f673 Correct three compatibility faults in tag resolution
add 9d2304f53f Compile tag calls in controllers too
add 164f297c58 Document compiled tag resolution
add 2ab866640a Let more than one directory hold tag libraries
add 37e5752e8f Resolve tags without writing to a metaclass anywhere it
matters
add 106aaae036 Record how each tag is implemented
add 04540b6b6d Remove an import left over from dropping the bootstrap
metaclass enhancement
add 1bf67a36b7 Only treat a name as a namespace when nothing else claims it
add 9729ec1ff1 Let a project resolve the tags it declares as it compiles
add 32a9393074 Recognise a boolean getter as claiming a namespace name
add 544710fd1d Add the Apache license header to the compiled tags guide
page
add 515c4b5f80 Read the tag library index once per compilation
add 1235c4cf1a Register the tags a tag library actually has
add b1ab9a42a6 Invoke a resolved tag with the arguments it was called with
add b204c78c35 Resolve a tag call wherever it is written
add 960c9cc97e Resolve a tag expression in a statically compiled page
add 54773e74a6 Describe each tag library once
add b9e2b510b6 Report an unknown tag only where the source says it is a tag
add 07a909cdea Let the build state what it knows about its tag libraries
add fcd70e89bf Document compiled tag resolution
add 33e2e90b9f Know a tag library declaring no tags has been described
add fdeb5e86fe Say which page tag forms strict checking covers
add 2a72625dfc Do not fork the index generator for a project with no tag
libraries
add c417954b9a Measure what compiling a tag call is worth on its own
add 73d6bd3fdf Describe a tag library that refers to what this project
declares
add 2834ffbf98 Package the index written after this project is compiled
add 86ed5d8401 Prove a deleted tag library cannot survive in what is
published
add 1ec4b8a0f4 Keep this project's compile settings out of what it
publishes
add d1c446ac6d Read a skipped tag library's namespace rather than match it
add 25a292dd00 Measure the rewriting rather than static compilation with it
add 0e7d2022ba Claim a skipped tag library's namespace only when the
source is plain
add 58bc54102c Add the descriptors to the library artifact alone
add 2bff14123a Drop an import left over from rewiring the index outputs
add 2780990aaa Take the compiled classes, not the whole source set output
add 91f8d3d43b Merge branch '8.0.x' into
feat/taglib-compile-time-index-8.0.x
add bfb87bf002 Merge branch '8.0.x' into
feat/taglib-compile-time-index-8.0.x
add eb5b692360 Leave a name Groovy already answers to out of unqualified
rewriting
add 156977b997 State what a page with no tag library lookup does with an
unresolved name
add 79193b6a75 Declare where tag call rewriting runs instead of relying on
a default
add 298d585422 Say what the self-describing fallback covers, and deprecate
what installs onto metaclasses
add c89bbaf534 Number the index format from one and drop the doubled
javadoc
add 781eb505f1 Drop the two index methods nothing calls
add 8ce567cf0d Wire the index into test runtimes and stop restating what
nothing reads
add 68901e2858 Finish the review: index reads, discovery pins, and the
notes that were missing
add 6480f53211 Stop concurrent index writes losing entries, and cover the
rest of the review
add 6b67de9dc6 Leave an unqualified call inside a closure to the closure's
delegate
add 7286f5c4cb Clear the style violations left by the review changes
add 30cac71a8f Drop the controller convention case from the rewriting spec
add c1ce109b06 Enumerate a tag library's tags once, for both views of it
add 72b3fffb20 Describe only what was asked for, and dispatch a shape a
tag cannot take
add 5852104a30 Compile a tag call the source proves is one, and make the
rest opt-in
add 95955df6bf Pin the unqualified setting on both sides of the module
boundary
add 045868cd81 Check a real build compiles a convention controller's tag
call
add 12985ef89a Record a tag name, not how it was written
add e1af1b99ef Check tags only in the namespaces this project describes
add cb57d22e32 Do not describe a class an application could never register
add 8ea3a9aa3e Say why the deprecated URL constructor stays
add 645241d930 Say that a namespace is not checked against a closure's
delegate
add 86642abeb0 Merge branch '8.0.x' of
https://github.com/apache/grails-core into feat/taglib-compile-time-index-8.0.x
add 6f9760b1af Merge branch '8.0.x' into
feat/taglib-compile-time-index-8.0.x
add cb99cc8fc1 Read a class for tag calls once its traits have been applied
add 0f59eafd57 Cover the controller the rewrite decides by its directory
add 1d82b09941 Report an unregistered tag as the dynamic path reported it
add c2c45fb7de Decline an argument list no tag call takes
add 79a69b3381 Put three javadoc blocks back on the members they describe
add 99b5e00336 Merge branch '8.0.x' of
https://github.com/apache/grails-core into feat/taglib-compile-time-index-8.0.x
add 547516d694 Merge branch '8.0.x' into
feat/taglib-compile-time-index-8.0.x
add df895a74a4 Merge feat/taglib-compile-time-index-8.0.x, restoring what
its merge dropped
new 5752ba0f58 Merge pull request #16134 from
codeconsole/feat/taglib-compile-time-index-8.0.x
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
end-to-end/README.md | 1 +
end-to-end/settings.gradle | 4 +
end-to-end/taglib-index-incremental/build.gradle | 54 ++
.../taglib/TagLibraryIndexIncrementalSpec.groovy | 241 ++++++++
gradle/rat-root-config.gradle | 1 +
.../common/compiler/GroovyTransformOrder.groovy | 7 +
.../TagLibraryInvokerTypeCheckingExtension.groovy | 7 +
grails-doc/src/en/guide/introduction/whatsNew.adoc | 44 ++
.../theWebLayer/gsp/taglibs/compiledTags.adoc | 308 +++++++++++
grails-doc/src/en/guide/toc.yml | 1 +
.../src/en/guide/upgrading/upgrading80x.adoc | 156 ++++++
.../plugin/core/GrailsCompileStaticOptions.groovy | 53 ++
.../views/gsp/GenerateTagLibraryIndexTask.groovy | 206 +++++++
.../plugin/views/gsp/GroovyPagePlugin.groovy | 230 +++++++-
.../plugin/views/gsp/TagLibraryIndexFiles.groovy | 133 +++++
.../gsp/GenerateTagLibraryIndexTaskSpec.groovy | 231 ++++++++
.../views/gsp/TagLibraryIndexFilesSpec.groovy | 113 ++++
.../gsp/TagLibraryIndexWiringFunctionalSpec.groovy | 131 +++++
.../test-projects/taglib-index-wiring/build.gradle | 32 ++
.../taglib-index-wiring/settings.gradle | 1 +
.../src/main/groovy/org/grails/gsp/GroovyPage.java | 47 ++
.../org/grails/gsp/GroovyPagesMetaUtils.groovy | 25 +-
.../GroovyPageTypeCheckingExtension.groovy | 29 +
.../grails/gsp/GroovyPageMethodMissingSpec.groovy | 120 ++++
.../grails/core/gsp/DefaultGrailsTagLibClass.java | 24 +-
.../org/grails/taglib/CompiledTagInvocation.java | 215 +++++++
.../grails/taglib/NamespacedTagDispatcher.groovy | 23 +-
.../taglib/TagLibNamespaceMethodDispatcher.groovy | 2 +-
.../org/grails/taglib/TagLibraryMetaUtils.groovy | 56 +-
.../groovy/org/grails/taglib/TagMethodInvoker.java | 217 ++++----
.../taglib/TemplateNamespacedTagDispatcher.groovy | 16 +-
.../grails/taglib/discovery/AstTagLibraryView.java | 85 +++
.../grails/taglib/discovery/AstTagMethodView.java | 127 +++++
.../taglib/discovery/ReflectedTagLibraryView.java | 73 +++
.../taglib/discovery/ReflectedTagMethodView.java | 110 ++++
.../grails/taglib/discovery/TagDiscoveryRules.java | 187 +++++++
.../taglib/discovery/TagLibraryAstDiscovery.java | 88 +++
.../grails/taglib/discovery/TagLibraryView.java | 53 ++
.../org/grails/taglib/discovery/TagMethodView.java | 103 ++++
.../org/grails/taglib/index/TagLibraryIndex.java | 526 ++++++++++++++++++
.../grails/taglib/index/TagLibraryIndexEntry.java | 23 +-
.../taglib/index/TagLibraryIndexGenerator.java | 431 ++++++++++++++
.../grails/taglib/index/TagLibraryIndexWriter.java | 212 +++++++
.../grails/taglib/index/TagLibraryIndexSpec.groovy | 340 ++++++++++++
.../TagLibraryIndexWriterConcurrencySpec.groovy | 127 +++++
.../main/groovy/grails/artefact/TagLibrary.groovy | 29 +-
.../grails/artefact/gsp/TagLibraryInvoker.groovy | 20 +-
.../taglib/compiler/CompiledTagCallRewriter.java | 616 +++++++++++++++++++++
.../gsp/taglib/compiler/LocalNameCollector.java | 131 +++++
.../gsp/taglib/compiler/PageBindingCollector.java | 93 ++++
.../TagLibArtefactTypeAstTransformation.java | 88 ++-
.../taglib/discovery/TagDiscoveryRulesSpec.groovy | 122 ++++
.../taglib/discovery/TagSetAgreementSpec.groovy | 98 ++++
.../taglib/index/SingleIndexProducerSpec.groovy | 126 +++++
.../index/SourceResolvedIndexGeneratorSpec.groovy | 452 +++++++++++++++
.../index/TagLibraryIndexGeneratorSpec.groovy | 301 ++++++++++
.../web/taglib/NoMetaClassMutationSpec.groovy | 104 ++++
.../web/taglib/TagLibraryLookupIndexSpec.groovy | 118 ++++
.../org/grails/web/taglib/TagPrecedenceSpec.groovy | 112 ++++
grails-gsp/plugin/build.gradle | 1 +
.../traits/CompiledTagCallTransformation.groovy | 109 ++++
...org.codehaus.groovy.transform.ASTTransformation | 1 +
.../plugins/web/GroovyPagesGrailsPlugin.groovy | 4 +-
.../web/taglib/CompiledPageTagCallSpec.groovy | 138 +++++
.../web/taglib/CompiledTagCallBytecodeSpec.groovy | 284 ++++++++++
.../web/taglib/CompiledTagCallRewriterSpec.groovy | 53 ++
.../CompiledTagCallTransformationOrderSpec.groovy | 68 +++
.../web/taglib/CompiledTagInvocationSpec.groovy | 146 +++++
.../web/taglib/ControllerTagCallRewriteSpec.groovy | 156 ++++++
.../taglib/GroovyMethodNameCollisionSpec.groovy | 212 +++++++
.../web/taglib/GspStaticTagResolutionSpec.groovy | 181 ++++++
.../grails/web/taglib/IndexEdgeCaseTagLib.groovy | 65 +++
.../grails/web/taglib/RewrittenCallsTagLib.groovy | 52 ++
.../web/taglib/RewrittenPageRenderingSpec.groovy | 92 +++
.../web/taglib/SameProjectTagResolutionSpec.groovy | 129 +++++
.../grails/web/taglib/TagCallShadowingSpec.groovy | 236 ++++++++
.../web/taglib/TagLibraryIndexAgreementSpec.groovy | 119 ++++
.../taglib/TagLibraryInvokerDispatchSpec.groovy | 176 ++++++
.../grails/plugins/mail/PlainTextMailTagLib.groovy | 2 +-
.../plugins/mail/PlainTextMailTagLibSpec.groovy | 39 +-
.../functionaltests/IncludesController.groovy | 13 +
.../functionaltests/CompiledTagCallSpec.groovy | 66 +++
.../grails/testing/web/GrailsWebUnitTest.groovy | 3 +
83 files changed, 9733 insertions(+), 235 deletions(-)
create mode 100644 end-to-end/taglib-index-incremental/build.gradle
create mode 100644
end-to-end/taglib-index-incremental/src/test/groovy/org/apache/grails/e2e/taglib/TagLibraryIndexIncrementalSpec.groovy
create mode 100644
grails-doc/src/en/guide/theWebLayer/gsp/taglibs/compiledTags.adoc
create mode 100644
grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GenerateTagLibraryIndexTask.groovy
create mode 100644
grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/TagLibraryIndexFiles.groovy
create mode 100644
grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/views/gsp/GenerateTagLibraryIndexTaskSpec.groovy
create mode 100644
grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/views/gsp/TagLibraryIndexFilesSpec.groovy
create mode 100644
grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/views/gsp/TagLibraryIndexWiringFunctionalSpec.groovy
create mode 100644
grails-gradle/plugins/src/test/resources/test-projects/taglib-index-wiring/build.gradle
create mode 100644
grails-gradle/plugins/src/test/resources/test-projects/taglib-index-wiring/settings.gradle
create mode 100644
grails-gsp/core/src/test/groovy/org/grails/gsp/GroovyPageMethodMissingSpec.groovy
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/CompiledTagInvocation.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/AstTagLibraryView.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/AstTagMethodView.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/ReflectedTagLibraryView.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/ReflectedTagMethodView.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/TagDiscoveryRules.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/TagLibraryAstDiscovery.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/TagLibraryView.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/TagMethodView.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/index/TagLibraryIndex.java
copy
grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/DatastoreResolver.groovy
=>
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/index/TagLibraryIndexEntry.java
(62%)
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/index/TagLibraryIndexGenerator.java
create mode 100644
grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/index/TagLibraryIndexWriter.java
create mode 100644
grails-gsp/grails-taglib/src/test/groovy/org/grails/taglib/index/TagLibraryIndexSpec.groovy
create mode 100644
grails-gsp/grails-taglib/src/test/groovy/org/grails/taglib/index/TagLibraryIndexWriterConcurrencySpec.groovy
create mode 100644
grails-gsp/grails-web-taglib/src/main/groovy/grails/gsp/taglib/compiler/CompiledTagCallRewriter.java
create mode 100644
grails-gsp/grails-web-taglib/src/main/groovy/grails/gsp/taglib/compiler/LocalNameCollector.java
create mode 100644
grails-gsp/grails-web-taglib/src/main/groovy/grails/gsp/taglib/compiler/PageBindingCollector.java
create mode 100644
grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/discovery/TagDiscoveryRulesSpec.groovy
create mode 100644
grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/discovery/TagSetAgreementSpec.groovy
create mode 100644
grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/index/SingleIndexProducerSpec.groovy
create mode 100644
grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/index/SourceResolvedIndexGeneratorSpec.groovy
create mode 100644
grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/index/TagLibraryIndexGeneratorSpec.groovy
create mode 100644
grails-gsp/grails-web-taglib/src/test/groovy/org/grails/web/taglib/NoMetaClassMutationSpec.groovy
create mode 100644
grails-gsp/grails-web-taglib/src/test/groovy/org/grails/web/taglib/TagLibraryLookupIndexSpec.groovy
create mode 100644
grails-gsp/grails-web-taglib/src/test/groovy/org/grails/web/taglib/TagPrecedenceSpec.groovy
create mode 100644
grails-gsp/plugin/src/ast/groovy/grails/compiler/traits/CompiledTagCallTransformation.groovy
create mode 100644
grails-gsp/plugin/src/ast/resources/META-INF/services/org.codehaus.groovy.transform.ASTTransformation
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledPageTagCallSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledTagCallBytecodeSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledTagCallRewriterSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledTagCallTransformationOrderSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledTagInvocationSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/ControllerTagCallRewriteSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/GroovyMethodNameCollisionSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/GspStaticTagResolutionSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/IndexEdgeCaseTagLib.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/RewrittenCallsTagLib.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/RewrittenPageRenderingSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/SameProjectTagResolutionSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/TagCallShadowingSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/TagLibraryIndexAgreementSpec.groovy
create mode 100644
grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/TagLibraryInvokerDispatchSpec.groovy
copy
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/SortConfigSpec.groovy
=>
grails-mail/src/test/groovy/grails/plugins/mail/PlainTextMailTagLibSpec.groovy
(50%)
create mode 100644
grails-test-examples/app1/src/test/groovy/functionaltests/CompiledTagCallSpec.groovy