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

borinquenkid pushed a commit to branch test/document-datamapping-core-services
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit f6b5a5424d59e13dcdb1ce81516737ea7811d9b2
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Sat Aug 15 19:47:01 2026 -0500

    Remove dead 
transactionalDatastore/transactionService/findInstanceApiForConnectionId
    
    None of these three protected helpers have any call site anywhere in
    the repo (core, rx, hibernate5/7, mongodb) and nothing overrides them,
    unlike the earlier getDetachedCriteriaType/lookupById extension points.
    findInstanceApiForConnectionId's live sibling, findStaticApiForConnectionId,
    is actively used by 5 implementers, but the instance-API equivalent was
    never wired up the same way -- every save/delete implementer builds that
    lookup by hand instead. Drops the now-unused TransactionService/
    TransactionCapableDatastore imports too.
    
    Co-Authored-By: Claude Sonnet 5 <[email protected]>
---
 .../implementers/AbstractServiceImplementer.groovy | 38 +++-------------------
 1 file changed, 5 insertions(+), 33 deletions(-)

diff --git 
a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/services/implementers/AbstractServiceImplementer.groovy
 
b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/services/implementers/AbstractServiceImplementer.groovy
index b21ceabbf5..c1b7576c5b 100644
--- 
a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/services/implementers/AbstractServiceImplementer.groovy
+++ 
b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/services/implementers/AbstractServiceImplementer.groovy
@@ -21,7 +21,6 @@ package org.grails.datastore.gorm.services.implementers
 
 import groovy.transform.CompileStatic
 import org.codehaus.groovy.ast.AnnotationNode
-import org.codehaus.groovy.ast.ClassHelper
 import org.codehaus.groovy.ast.ClassNode
 import org.codehaus.groovy.ast.MethodNode
 import org.codehaus.groovy.ast.Parameter
@@ -29,12 +28,10 @@ import org.codehaus.groovy.ast.expr.Expression
 import org.codehaus.groovy.transform.trait.Traits
 
 import grails.gorm.multitenancy.TenantService
-import grails.gorm.transactions.TransactionService
 import org.grails.datastore.gorm.GormEnhancer
 import org.grails.datastore.gorm.multitenancy.transform.TenantTransform
 import org.grails.datastore.gorm.services.ServiceImplementer
 import org.grails.datastore.gorm.transactions.transform.TransactionalTransform
-import org.grails.datastore.gorm.transform.AstMethodDispatchUtils
 import org.grails.datastore.gorm.transform.AstPropertyResolveUtils
 import org.grails.datastore.mapping.core.Ordered
 import org.grails.datastore.mapping.model.config.GormProperties
@@ -42,7 +39,6 @@ import 
org.grails.datastore.mapping.multitenancy.MultiTenancySettings
 import org.grails.datastore.mapping.multitenancy.MultiTenantCapableDatastore
 import org.grails.datastore.mapping.reflect.AstUtils
 import org.grails.datastore.mapping.services.ServiceRegistry
-import org.grails.datastore.mapping.transactions.TransactionCapableDatastore
 
 import static org.codehaus.groovy.ast.ClassHelper.make
 import static org.codehaus.groovy.ast.tools.GeneralUtils.args
@@ -116,7 +112,7 @@ abstract class AbstractServiceImplementer implements 
PrefixedServiceImplementer,
      * @return True if it is
      */
     protected boolean isValidParameter(ClassNode domainClassNode, Parameter 
parameter, String parameterName) {
-        if (GormProperties.IDENTITY.equals(parameterName)) {
+        if (GormProperties.IDENTITY == parameterName) {
             return true
         }
         else {
@@ -135,18 +131,11 @@ abstract class AbstractServiceImplementer implements 
PrefixedServiceImplementer,
         return propX(varX('this'), 'targetDatastore')
     }
 
-    /**
-     * @return The datastore expression
-     */
-    protected Expression transactionalDatastore() {
-        return castX(ClassHelper.make(TransactionCapableDatastore), 
propX(varX('this'), 'targetDatastore'))
-    }
-
     /**
      * @return The datastore expression
      */
     protected Expression multiTenantDatastore() {
-        return castX(ClassHelper.make(MultiTenantCapableDatastore), 
propX(varX('this'), 'targetDatastore'))
+        return castX(make(MultiTenantCapableDatastore), propX(varX('this'), 
'targetDatastore'))
     }
 
     /**
@@ -156,16 +145,9 @@ abstract class AbstractServiceImplementer implements 
PrefixedServiceImplementer,
         return callD(ServiceRegistry, 'targetDatastore', 'getService', 
classX(make(TenantService)))
     }
 
-    /**
-     * @return The transaction service
-     */
-    protected Expression transactionService() {
-        return callD(ServiceRegistry, 'targetDatastore', 'getService', 
classX(make(TransactionService)))
-    }
-
     protected Expression findConnectionId(MethodNode methodNode) {
         if (TenantTransform.hasTenantAnnotation(methodNode)) {
-            return callD(classX(ClassHelper.make(MultiTenancySettings)), 
'resolveConnectionForTenantId', args(
+            return callD(classX(make(MultiTenancySettings)), 
'resolveConnectionForTenantId', args(
                 propX(multiTenantDatastore(), 'multiTenancyMode'), 
callD(tenantService(), 'currentId')
             ))
         }
@@ -180,27 +162,17 @@ abstract class AbstractServiceImplementer implements 
PrefixedServiceImplementer,
     }
 
     protected Expression buildInstanceApiLookup(ClassNode domainClass, 
Expression connectionId) {
-        return AstMethodDispatchUtils.callD(
+        return callD(
             classX(GormEnhancer), 'findInstanceApi', args(classX(domainClass), 
connectionId)
         )
     }
 
     protected Expression buildStaticApiLookup(ClassNode domainClass, 
Expression connectionId) {
-        return AstMethodDispatchUtils.callD(
+        return callD(
                 classX(GormEnhancer), 'findStaticApi', 
args(classX(domainClass), connectionId)
         )
     }
 
-    protected Expression findInstanceApiForConnectionId(ClassNode domainClass, 
MethodNode methodNode) {
-        Expression connectionId = findConnectionId(methodNode)
-        if (connectionId != null) {
-            return buildInstanceApiLookup(domainClass, connectionId)
-        }
-        else {
-            return classX(domainClass.plainNodeReference)
-        }
-    }
-
     protected Expression findStaticApiForConnectionId(ClassNode domainClass, 
MethodNode methodNode) {
         Expression connectionId = findConnectionId(methodNode)
         if (connectionId != null) {

Reply via email to