You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by jd...@apache.org on 2026/09/29 12:08:02 UTC

(grails-core) 01/01: Merge pull request #16272 from codeconsole/fix/resource-link-controller-lookup

This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a commit to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 7bbb43f28cd30d9e8ec0924cd11d6dcefc3f5b21
Merge: 12be92bbb8 f56bf2d950
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Tue Sep 29 08:07:52 2026 -0400

    Merge pull request #16272 from codeconsole/fix/resource-link-controller-lookup
    
    Resolve links to the most specific controller, namespace and URL mapping

 .../main/groovy/grails/artefact/Controller.groovy  |  29 +-
 .../grails/artefact/ControllerRedirectSpec.groovy  |  81 ++-
 grails-doc/src/en/guide/REST/hypermedia/hal.adoc   |   2 +-
 .../extendingRestfulController.adoc                |   2 +-
 .../src/en/guide/REST/versioningResources.adoc     |   2 +-
 grails-doc/src/en/guide/scaffolding.adoc           |   3 +
 .../urlmappings/namespacedControllers.adoc         |  14 +-
 .../theWebLayer/urlmappings/restfulMappings.adoc   |  64 ++
 .../src/en/guide/upgrading/upgrading80x.adoc       |   5 +-
 grails-fields/build.gradle                         |   1 +
 .../plugin/formfields/FormFieldsTagLib.groovy      |  16 +-
 .../taglib/AssociationLinkTargetSpec.groovy        | 106 +++
 .../templates/artifacts/RestfulController.groovy   |   2 +-
 .../render/util/AbstractLinkingRenderer.groovy     |   2 +-
 grails-scaffolding/build.gradle                    |   3 +
 .../templates/scaffolding/AsyncController.groovy   |   4 +-
 .../main/templates/scaffolding/Controller.groovy   |   4 +-
 .../GeneratedAsyncControllerRedirectSpec.groovy    |  28 +-
 .../GeneratedControllerRedirectSpec.groovy         | 101 +++
 .../plugin/scaffolding/redirect/Fixtures.groovy    |  39 +-
 grails-test-examples/hyphenated/build.gradle       |   1 +
 .../hyphenated/CityGuidesController.groovy         |  21 +-
 .../hyphenated/LinkPageController.groovy           |  21 +-
 .../backoffice/GuideLedgerController.groovy        |  22 +-
 .../backoffice/TourDeskController.groovy           |  22 +-
 .../grails-app/domain/hyphenated/TourGuide.groovy  |  21 +-
 .../grails-app/views/links/guideLinks.gsp          |  30 +
 .../hyphenated/HyphenatedLinkResolutionSpec.groovy |  92 +++
 grails-test-examples/namespaces/build.gradle       |   1 +
 .../grails-app/controllers/UrlMappings.groovy      |  12 +
 .../namespaces/AssessmentController.groovy         |  22 +-
 .../controllers/namespaces/AuthorController.groovy |  20 +-
 .../controllers/namespaces/GadgetController.groovy |  20 +-
 .../controllers/namespaces/HomeController.groovy   |  30 +-
 .../controllers/namespaces/MoviesController.groovy |  20 +-
 .../namespaces/admin/AuthorController.groovy       |  20 +-
 .../namespaces/admin/GadgetReportController.groovy |  26 +-
 .../namespaces/admin/PageController.groovy         |  21 +
 .../namespaces/archive/ItemController.groovy       |  25 +-
 .../namespaces/catalog/ItemController.groovy       |  23 +-
 .../namespaces/manage/DashboardController.groovy   |  25 +-
 .../manage/ManageAssessmentController.groovy       |  26 +-
 .../grails-app/domain/namespaces/Assessment.groovy |  20 +-
 .../grails-app/domain/namespaces/Film.groovy       |  20 +-
 .../grails-app/domain/namespaces/Gadget.groovy     |  20 +-
 .../grails-app/domain/namespaces/Screening.groovy  |  21 +-
 .../domain/namespaces/archive/Item.groovy          |  24 +-
 .../domain/namespaces/catalog/Item.groovy          |  20 +-
 .../services/namespaces/LinkFixtureService.groovy  |  28 +-
 .../grails-app/views/links/methodLinks.gsp         |  28 +
 .../grails-app/views/links/resourceLinks.gsp       |  44 ++
 .../groovy/namespaces/LinkResolutionSpec.groovy    | 216 ++++++
 .../src/main/groovy/namespaces/ReportBase.groovy   |  24 +-
 .../scaffolding-fields/build.gradle                |   1 +
 .../scaffoldingfields/CrewController.groovy        |  22 +-
 .../scaffoldingfields/DeckhandsController.groovy   |  25 +-
 .../domain/scaffoldingfields/Crew.groovy           |  21 +-
 .../domain/scaffoldingfields/Sailor.groovy         |  21 +-
 .../RenamedScaffoldLinksSpec.groovy                | 118 ++++
 .../grails-app/conf/spring/resources.groovy        |  25 +-
 .../functional/tests/PapersController.groovy       |  25 +-
 .../functional/tests/PeriodicalsController.groovy  |  24 +-
 .../functional/tests/PublishersController.groovy   |  21 +-
 .../functional/tests/UrlMappings.groovy            |   3 +
 .../domain/functional/tests/Journal.groovy         |  22 +-
 .../domain/functional/tests/Magazine.groovy        |  22 +-
 .../domain/functional/tests/Publisher.groovy       |  21 +-
 .../grails-app/views/periodicals/index.gson        |  24 +-
 .../grails-app/views/periodicals/show.gson         |  24 +-
 .../tests/RenamedControllerHalLinksSpec.groovy     | 102 +++
 .../RestfulControllerRedirectTargetSpec.groovy     | 119 ++++
 .../RestfulControllerResourceLinkSpec.groovy       | 156 +++++
 ...directToControllerInDefaultNamespaceSpec.groovy |  48 ++
 ...RedirectToControllerInOtherNamespaceSpec.groovy |  67 ++
 .../servlet/mvc/alpha/NamespacedController.groovy  |   4 +
 .../servlet/mvc/beta/NamespacedController.groovy   |   4 +
 .../view/api/internal/DefaultHalViewHelper.groovy  |   5 +-
 .../plugin/json/view/HalCollectionLinkSpec.groovy  |  58 ++
 .../plugin/json/view/hallinks/Fixtures.groovy      |  29 +-
 grails-web-url-mappings/build.gradle               |   3 +-
 .../groovy/grails/web/mapping/LinkGenerator.java   |  13 +-
 .../grails/web/mapping/CachingLinkGenerator.java   |  67 +-
 .../grails/web/mapping/DefaultLinkGenerator.groovy | 751 +++++++++++++++++----
 .../web/mapping/DefaultUrlMappingsHolder.java      |   2 +-
 .../web/mapping/CachingLinkGeneratorSpec.groovy    | 106 ++-
 .../LinkGeneratorNamespaceInferenceSpec.groovy     |  85 ++-
 .../LinkGeneratorResourceControllerSpec.groovy     | 674 ++++++++++++++++++
 .../grails/web/mapping/LinkGeneratorSpec.groovy    |   6 +-
 .../mapping/ReverseMappingPrecedenceSpec.groovy    | 150 ++++
 .../mapping/UrlMappingsWithHttpMethodSpec.groovy   |  46 ++
 .../mapping/domainlink/DomainLinkFixtures.groovy   | 370 ++++++++++
 .../domainlink/archive/ItemController.groovy       |  31 +-
 .../domainlink/archive/PamphletsController.groovy  |  26 +-
 .../domainlink/catalog/ItemController.groovy       |  30 +-
 .../domainlink/print/PamphletsController.groovy    |  24 +-
 .../src/test/resources/logback-test.xml            |  22 +
 .../src/test/resources/simplelogger.properties     |  20 -
 97 files changed, 3965 insertions(+), 966 deletions(-)