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

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

commit d80923d19cbb3ea357ea7bb0768a5869a8a1b247
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Thu Feb 12 15:06:09 2026 -0600

     1. Consolidated Utility Logic: BackTigsTrimmer (which had a typo and was 
redundant) has been completely replaced by BackticksRemover.
       2. Centralized Constants: The BACKTICK constant was moved from 
GrailsDomainBinder to BackticksRemover.
       3. Refactored `TableForManyCalculator`: Updated this class to use 
BackticksRemover instead of the now-deleted BackTigsTrimmer.
       4. Cleaned Up Codebase:
           * Removed BackTigsTrimmer.java and its corresponding test 
BackTigsTrimmerSpec.groovy.
           * Updated unit tests (TableForManyCalculatorSpec.groovy) to use the 
consolidated logic.
           * Applied these changes to both grails-data-hibernate7 and 
grails-data-hibernate6 modules for consistency.
       5. Updated Documentation: The HIBERNATE7-UPGRADE-PROGRESS.md file has 
been updated to reflect the removal of BackTigsTrimmer.
---
 .../orm/hibernate/cfg/GrailsDomainBinder.java      |  1 -
 .../cfg/domainbinding/BackTigsTrimmer.java         | 13 ---------
 .../cfg/domainbinding/BackticksRemover.java        |  5 +++-
 .../cfg/domainbinding/TableForManyCalculator.java  |  6 ----
 .../cfg/domainbinding/BackTigsTrimmerSpec.groovy   | 30 --------------------
 .../TableForManyCalculatorSpec.groovy              |  4 +--
 .../core/HIBERNATE7-UPGRADE-PROGRESS.md            |  3 +-
 .../orm/hibernate/cfg/GrailsDomainBinder.java      |  1 -
 .../cfg/domainbinding/util/BackTigsTrimmer.java    | 13 ---------
 .../cfg/domainbinding/util/BackticksRemover.java   |  5 +++-
 .../domainbinding/util/TableForManyCalculator.java |  8 +-----
 .../cfg/domainbinding/BackTigsTrimmerSpec.groovy   | 32 ----------------------
 .../TableForManyCalculatorSpec.groovy              |  4 +--
 13 files changed, 12 insertions(+), 113 deletions(-)

diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
index 2bb11e0d6f..61e46bd0ba 100644
--- 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
+++ 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
@@ -124,7 +124,6 @@ public class GrailsDomainBinder implements 
MetadataContributor {
     public static final String CASCADE_ALL = "all";
     public static final String CASCADE_SAVE_UPDATE = "save-update";
     public static final String CASCADE_NONE = "none";
-    public static final String BACKTICK = "`";
 
     public static final String ENUM_TYPE_CLASS = 
org.grails.orm.hibernate.HibernateLegacyEnumType.class.getName();
     public static final String ENUM_CLASS_PROP = "enumClass";
diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackTigsTrimmer.java
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackTigsTrimmer.java
deleted file mode 100644
index 929a65af5b..0000000000
--- 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackTigsTrimmer.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.grails.orm.hibernate.cfg.domainbinding;
-
-import static org.grails.orm.hibernate.cfg.GrailsDomainBinder.BACKTICK;
-
-public class BackTigsTrimmer {
-
-    public String trimBackTigs(String tableName) {
-        if (tableName != null && tableName.length() >= 2 && 
tableName.startsWith(BACKTICK) && tableName.endsWith(BACKTICK)) {
-            return tableName.substring(1, tableName.length() - 1);
-        }
-        return tableName;
-    }
-}
diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackticksRemover.java
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackticksRemover.java
index 9ad7e4c405..6575990ac8 100644
--- 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackticksRemover.java
+++ 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackticksRemover.java
@@ -4,11 +4,14 @@ import java.util.Optional;
 import java.util.function.Function;
 
 public class BackticksRemover implements Function<String, String> {
+
+    public static final String BACKTICK = "`";
+
     @Override
     public String apply(String string) {
         return Optional.ofNullable(string)
                 .map(String::trim)
-                .filter(s ->s.length()>=2 && s.startsWith("`") && 
s.endsWith("`"))
+                .filter(s ->s.length()>=2 && s.startsWith(BACKTICK) && 
s.endsWith(BACKTICK))
                 .map(s -> s.substring(1, s.length() - 1))
                 .orElse(string);
     }
diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculator.java
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculator.java
index 71d5e453c0..c0cfc3f01b 100644
--- 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculator.java
+++ 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculator.java
@@ -20,7 +20,6 @@ public class TableForManyCalculator {
     private final TableNameFetcher tableNameFetcher;
     private final BackticksRemover backticksRemover;
     private final ShouldCollectionBindWithJoinColumn 
shouldCollectionBindWithJoinColumn;
-    private final BackTigsTrimmer backTigsTrimmer;
     private final PersistentPropertyToPropertyConfig 
persistentPropertyToPropertyConfig;
 
     public TableForManyCalculator(PersistentEntityNamingStrategy 
namingStrategy) {
@@ -28,7 +27,6 @@ public class TableForManyCalculator {
         tableNameFetcher = new TableNameFetcher(namingStrategy);
         backticksRemover = new BackticksRemover();
         shouldCollectionBindWithJoinColumn = new 
ShouldCollectionBindWithJoinColumn();
-        backTigsTrimmer = new BackTigsTrimmer();
         persistentPropertyToPropertyConfig = new 
PersistentPropertyToPropertyConfig();
     }
 
@@ -36,13 +34,11 @@ public class TableForManyCalculator {
              , TableNameFetcher tableNameFetcher
             , BackticksRemover backticksRemover
     , ShouldCollectionBindWithJoinColumn shouldCollectionBindWithJoinColumn
-    , BackTigsTrimmer backTigsTrimmer
     , PersistentPropertyToPropertyConfig persistentPropertyToPropertyConfig) {
         this.namingStrategy = namingStrategy;
         this.tableNameFetcher = tableNameFetcher;
         this.backticksRemover = backticksRemover;
         this.shouldCollectionBindWithJoinColumn = 
shouldCollectionBindWithJoinColumn;
-        this.backTigsTrimmer = backTigsTrimmer;
         this.persistentPropertyToPropertyConfig = 
persistentPropertyToPropertyConfig;
     }
 
@@ -98,8 +94,6 @@ public class TableForManyCalculator {
             if (hasJoinTableMapping) {
                 return jt.getName();
             }
-            left = backTigsTrimmer.trimBackTigs(left);
-            right = backTigsTrimmer.trimBackTigs(right);
             return backticksRemover.apply(left) + UNDERSCORE + 
backticksRemover.apply(right);
         }
 
diff --git 
a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackTigsTrimmerSpec.groovy
 
b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackTigsTrimmerSpec.groovy
deleted file mode 100644
index 5d5101510a..0000000000
--- 
a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackTigsTrimmerSpec.groovy
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.grails.orm.hibernate.cfg.domainbinding
-
-import spock.lang.Specification
-import spock.lang.Unroll
-
-class BackTigsTrimmerSpec extends Specification {
-
-    @Unroll
-    def "Test that trimBackTigs correctly trims '#input' to '#expected'"() {
-        given:
-        def trimmer = new BackTigsTrimmer()
-
-        when:
-        def result = trimmer.trimBackTigs(input)
-
-        then:
-        result == expected
-
-        where:
-        input      | expected
-        '`table`'  | 'table'
-        'table'    | 'table'
-        '`table'   | '`table'
-        'table`'   | 'table`'
-        '``'       | ''
-        '`'        | '`'
-        ''         | ''
-        null       | null
-    }
-}
diff --git 
a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculatorSpec.groovy
 
b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculatorSpec.groovy
index 68f988594f..991bc95b47 100644
--- 
a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculatorSpec.groovy
+++ 
b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculatorSpec.groovy
@@ -20,11 +20,10 @@ class TableForManyCalculatorSpec extends Specification {
         def tableNameFetcher = Stub(TableNameFetcher)
         def backticksRemover = Stub(BackticksRemover)
         def shouldBind = Stub(ShouldCollectionBindWithJoinColumn)
-        def trimmer = Stub(BackTigsTrimmer)
         def configConverter = Stub(PersistentPropertyToPropertyConfig)
 
         // 2. Instantiate the calculator with mocks
-        def calculator = new TableForManyCalculator(namingStrategy, 
tableNameFetcher, backticksRemover, shouldBind, trimmer, configConverter)
+        def calculator = new TableForManyCalculator(namingStrategy, 
tableNameFetcher, backticksRemover, shouldBind, configConverter)
 
         // 3. Set up stubs for the property and entities
         def property = Stub(mockClass)
@@ -55,7 +54,6 @@ class TableForManyCalculatorSpec extends Specification {
 
         // Make removers and trimmers pass through values for simplicity
         backticksRemover.apply(_) >> { String s -> s }
-        trimmer.trimBackTigs(_) >> { String s -> s }
 
         when:
         def result = calculator.calculateTableForMany(property, "default")
diff --git a/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md 
b/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md
index 43d727dd2f..7a41a13f0e 100644
--- a/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md
+++ b/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md
@@ -81,7 +81,7 @@ The core idea is to reorganize the binder application logic 
into a single primar
 *   **TableNameFetcher**: Resolves the table name for a given entity using the 
naming strategy.
 *   **DefaultColumnNameFetcher**: Resolves default column names for properties.
 *   **ColumnNameForPropertyAndPathFetcher**: Resolves column names considering 
embedded paths.
-*   **BackticksRemover / BackTigsTrimmer**: Utilities for handling database 
identifiers with quotes.
+*   **BackticksRemover**: Utility for handling database identifiers with 
quotes. Replaced redundant `BackTigsTrimmer`.
 *   **ConfigureDerivedPropertiesConsumer**: Applies `derived` flag to 
properties based on mapping.
 *   **GrailsHibernateUtil**: General utility methods for Hibernate integration.
 
@@ -174,7 +174,6 @@ The core idea is to reorganize the binder application logic 
into a single primar
 | `TableForManyCalculator` | Migrated | |
 | `UniqueNameGenerator` | Migrated | |
 | `BackticksRemover` | Migrated | |
-| `BackTigsTrimmer` | Migrated | |
 | `BasicValueIdCreator` | Migrated | |
 
 ## Known Issues / TODOs
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
index f3f8318102..cb85986557 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
@@ -93,7 +93,6 @@ public class GrailsDomainBinder
     private static final String STRING_TYPE = "string";
     public static final String EMPTY_PATH = "";
     public static final char UNDERSCORE = '_';
-    public static final String BACKTICK = "`";
 
     public static final String ENUM_TYPE_CLASS = 
org.grails.orm.hibernate.HibernateLegacyEnumType.class.getName();
     public static final String ENUM_CLASS_PROP = "enumClass";
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BackTigsTrimmer.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BackTigsTrimmer.java
deleted file mode 100644
index 43ef407278..0000000000
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BackTigsTrimmer.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.grails.orm.hibernate.cfg.domainbinding.util;
-
-import static org.grails.orm.hibernate.cfg.GrailsDomainBinder.BACKTICK;
-
-public class BackTigsTrimmer {
-
-    public String trimBackTigs(String tableName) {
-        if (tableName != null && tableName.length() >= 2 && 
tableName.startsWith(BACKTICK) && tableName.endsWith(BACKTICK)) {
-            return tableName.substring(1, tableName.length() - 1);
-        }
-        return tableName;
-    }
-}
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BackticksRemover.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BackticksRemover.java
index c3da3bae8b..c3b73c7f49 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BackticksRemover.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BackticksRemover.java
@@ -4,11 +4,14 @@ import java.util.Optional;
 import java.util.function.Function;
 
 public class BackticksRemover implements Function<String, String> {
+
+    public static final String BACKTICK = "`";
+
     @Override
     public String apply(String string) {
         return Optional.ofNullable(string)
                 .map(String::trim)
-                .filter(s ->s.length()>=2 && s.startsWith("`") && 
s.endsWith("`"))
+                .filter(s ->s.length()>=2 && s.startsWith(BACKTICK) && 
s.endsWith(BACKTICK))
                 .map(s -> s.substring(1, s.length() - 1))
                 .orElse(string);
     }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/TableForManyCalculator.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/TableForManyCalculator.java
index 9c783cb997..c1615e82f5 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/TableForManyCalculator.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/TableForManyCalculator.java
@@ -21,23 +21,19 @@ public class TableForManyCalculator {
     private final PersistentEntityNamingStrategy namingStrategy;
     private final TableNameFetcher tableNameFetcher;
     private final BackticksRemover backticksRemover;
-    private final BackTigsTrimmer backTigsTrimmer;
 
     public TableForManyCalculator(PersistentEntityNamingStrategy 
namingStrategy) {
         this.namingStrategy = namingStrategy;
         tableNameFetcher = new TableNameFetcher(namingStrategy);
         backticksRemover = new BackticksRemover();
-        backTigsTrimmer = new BackTigsTrimmer();
     }
 
     protected TableForManyCalculator(PersistentEntityNamingStrategy 
namingStrategy
              , TableNameFetcher tableNameFetcher
-            , BackticksRemover backticksRemover
-    , BackTigsTrimmer backTigsTrimmer) {
+            , BackticksRemover backticksRemover) {
         this.namingStrategy = namingStrategy;
         this.tableNameFetcher = tableNameFetcher;
         this.backticksRemover = backticksRemover;
-        this.backTigsTrimmer = backTigsTrimmer;
     }
 
 
@@ -93,8 +89,6 @@ public class TableForManyCalculator {
             if (hasJoinTableMapping) {
                 return jt.getName();
             }
-            left = backTigsTrimmer.trimBackTigs(left);
-            right = backTigsTrimmer.trimBackTigs(right);
             return backticksRemover.apply(left) + UNDERSCORE + 
backticksRemover.apply(right);
         }
 
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackTigsTrimmerSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackTigsTrimmerSpec.groovy
deleted file mode 100644
index f008084549..0000000000
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BackTigsTrimmerSpec.groovy
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.grails.orm.hibernate.cfg.domainbinding
-
-import spock.lang.Specification
-import spock.lang.Unroll
-
-import org.grails.orm.hibernate.cfg.domainbinding.util.BackTigsTrimmer
-
-class BackTigsTrimmerSpec extends Specification {
-
-    @Unroll
-    def "Test that trimBackTigs correctly trims '#input' to '#expected'"() {
-        given:
-        def trimmer = new BackTigsTrimmer()
-
-        when:
-        def result = trimmer.trimBackTigs(input)
-
-        then:
-        result == expected
-
-        where:
-        input      | expected
-        '`table`'  | 'table'
-        'table'    | 'table'
-        '`table'   | '`table'
-        'table`'   | 'table`'
-        '``'       | ''
-        '`'        | '`'
-        ''         | ''
-        null       | null
-    }
-}
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculatorSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculatorSpec.groovy
index c1be27e373..c4b1f95d7f 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculatorSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculatorSpec.groovy
@@ -8,7 +8,6 @@ import org.grails.orm.hibernate.cfg.JoinTable
 
 import spock.lang.Unroll
 
-import org.grails.orm.hibernate.cfg.domainbinding.util.BackTigsTrimmer
 import org.grails.orm.hibernate.cfg.domainbinding.util.BackticksRemover
 import org.grails.orm.hibernate.cfg.domainbinding.util.TableForManyCalculator
 import org.grails.orm.hibernate.cfg.domainbinding.util.TableNameFetcher
@@ -21,9 +20,8 @@ class TableForManyCalculatorSpec extends 
HibernateGormDatastoreSpec {
         def namingStrategy = getGrailsDomainBinder().getNamingStrategy()
         def tableNameFetcher = new TableNameFetcher(namingStrategy)
         def backticksRemover = new BackticksRemover()
-        def trimmer = new BackTigsTrimmer()
 
-        def calculator = new TableForManyCalculator(namingStrategy, 
tableNameFetcher, backticksRemover, trimmer)
+        def calculator = new TableForManyCalculator(namingStrategy, 
tableNameFetcher, backticksRemover)
 
         GrailsHibernatePersistentEntity ownerEntityInstance
         GrailsHibernatePersistentEntity associatedEntityInstance

Reply via email to