From 353a1b415ca28525352b0bdd5cfdab8b9dc0809e Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 16 Feb 2022 08:36:47 +0100 Subject: [PATCH] [jOOQ/jOOQ#13078] Add internal Tools.CONFIG as a convenience for Tools.CTX.configuration() --- jOOQ/src/main/java/org/jooq/impl/AbstractDataTypeX.java | 8 ++++---- jOOQ/src/main/java/org/jooq/impl/AbstractQueryPart.java | 4 ++-- jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java | 5 +++-- jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java | 1 + jOOQ/src/main/java/org/jooq/impl/Internal.java | 7 ++++--- jOOQ/src/main/java/org/jooq/impl/MultisetDataType.java | 8 ++++---- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 3 ++- jOOQ/src/main/java/org/jooq/impl/RecordDataType.java | 3 ++- jOOQ/src/main/java/org/jooq/impl/Tools.java | 5 +++-- 9 files changed, 25 insertions(+), 19 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataTypeX.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataTypeX.java index 1e2088e332..420d541137 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataTypeX.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataTypeX.java @@ -38,7 +38,7 @@ package org.jooq.impl; import static org.jooq.Nullability.NOT_NULL; -import static org.jooq.impl.Tools.CTX; +import static org.jooq.impl.Tools.CONFIG; import org.jooq.CharacterSet; import org.jooq.Collation; @@ -96,7 +96,7 @@ abstract class AbstractDataTypeX extends AbstractDataType { @Override public final DataType readonly(boolean r) { - if (r && !CTX.configuration().commercial()) + if (r && !CONFIG.commercial()) logGeneratedAlwaysAs.info("Readonly columns", "Readonly columns are a commercial only jOOQ feature. If you wish to profit from this feature, please upgrade to the jOOQ Professional Edition"); return construct( @@ -118,7 +118,7 @@ abstract class AbstractDataTypeX extends AbstractDataType { @Override public final DataType generatedAlwaysAs(Field g) { - if (g != null && !CTX.configuration().commercial()) + if (g != null && !CONFIG.commercial()) logGeneratedAlwaysAs.info("Computed columns", "Computed columns are a commercial only jOOQ feature. If you wish to profit from this feature, please upgrade to the jOOQ Professional Edition"); return construct( @@ -138,7 +138,7 @@ abstract class AbstractDataTypeX extends AbstractDataType { @Override public final DataType generationOption(GenerationOption g) { - if (g != null && !CTX.configuration().commercial()) + if (g != null && !CONFIG.commercial()) logGeneratedAlwaysAs.info("Computed columns", "Computed columns are a commercial only jOOQ feature. If you wish to profit from this feature, please upgrade to the jOOQ Professional Edition"); return construct( diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractQueryPart.java b/jOOQ/src/main/java/org/jooq/impl/AbstractQueryPart.java index a7b25198f0..28455e6e31 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractQueryPart.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractQueryPart.java @@ -38,7 +38,7 @@ package org.jooq.impl; -import static org.jooq.impl.Tools.CTX; +import static org.jooq.impl.Tools.CONFIG; import java.io.IOException; import java.io.ObjectInputStream; @@ -67,7 +67,7 @@ abstract class AbstractQueryPart implements QueryPartInternal { // ------------------------------------------------------------------------- Configuration configuration() { - return CTX.configuration(); + return CONFIG; } // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java b/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java index c6ccce67ee..001e6de887 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java @@ -37,6 +37,7 @@ */ package org.jooq.impl; +import static org.jooq.impl.Tools.CONFIG; import static org.jooq.impl.Tools.CTX; import org.jooq.CharacterSet; @@ -120,7 +121,7 @@ final class ArrayDataType extends DefaultDataType { @Override public final String getTypeName() { - return getTypeName(CTX.configuration()); + return getTypeName(CONFIG); } @Override @@ -131,7 +132,7 @@ final class ArrayDataType extends DefaultDataType { @Override public final String getCastTypeName() { - return getCastTypeName(CTX.configuration()); + return getCastTypeName(CONFIG); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 42112017d0..36da206960 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -141,6 +141,7 @@ import static org.jooq.impl.SQLDataType.TIME; import static org.jooq.impl.SQLDataType.TIMESTAMP; import static org.jooq.impl.SQLDataType.VARBINARY; import static org.jooq.impl.SQLDataType.VARCHAR; +import static org.jooq.impl.Tools.CTX; import static org.jooq.impl.Tools.apply; import static org.jooq.impl.Tools.asInt; import static org.jooq.impl.Tools.attachRecords; diff --git a/jOOQ/src/main/java/org/jooq/impl/Internal.java b/jOOQ/src/main/java/org/jooq/impl/Internal.java index a88b890a49..f0d4007af3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Internal.java +++ b/jOOQ/src/main/java/org/jooq/impl/Internal.java @@ -37,6 +37,7 @@ */ package org.jooq.impl; +import static org.jooq.impl.Tools.CONFIG; import static org.jooq.impl.Tools.CTX; import static org.jooq.impl.Tools.configuration; import static org.jooq.impl.Tools.nullSafe; @@ -489,7 +490,7 @@ public final class Internal { * Whether this is a commercial edition of jOOQ. */ public static final boolean commercial() { - return CTX.configuration().commercial(); + return CONFIG.commercial(); } /** @@ -497,7 +498,7 @@ public final class Internal { * if not. */ public static final boolean commercial(Supplier logMessage) { - return CTX.configuration().commercial(logMessage); + return CONFIG.commercial(logMessage); } /** @@ -505,7 +506,7 @@ public final class Internal { * a message, if not. */ public static final void requireCommercial(Supplier logMessage) throws DataAccessException { - CTX.configuration().requireCommercial(logMessage); + CONFIG.requireCommercial(logMessage); } diff --git a/jOOQ/src/main/java/org/jooq/impl/MultisetDataType.java b/jOOQ/src/main/java/org/jooq/impl/MultisetDataType.java index db5379323f..c6e60e13a1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MultisetDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/MultisetDataType.java @@ -39,7 +39,7 @@ package org.jooq.impl; import static java.util.Comparator.comparing; import static java.util.stream.Collectors.toList; -import static org.jooq.impl.Tools.CTX; +import static org.jooq.impl.Tools.CONFIG; import static org.jooq.impl.Tools.newRecord; import java.util.List; @@ -148,10 +148,10 @@ final class MultisetDataType extends DefaultDataType // [#3884] TODO: Move this logic into JSONReader to make it more generally useful if (object instanceof List) { List l = (List) object; - ResultImpl result = new ResultImpl<>(CTX.configuration(), row); + ResultImpl result = new ResultImpl<>(CONFIG, row); for (Object record : l) - result.add(newRecord(true, recordType, row, CTX.configuration()) + result.add(newRecord(true, recordType, row, CONFIG) .operate(r -> { // [#12014] TODO: Fix this and remove workaround @@ -170,7 +170,7 @@ final class MultisetDataType extends DefaultDataType return result; } else if (object == null) - return new ResultImpl<>(CTX.configuration(), row); + return new ResultImpl<>(CONFIG, row); else return super.convert(object); } diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 95f23c26fe..3696e0d541 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -435,6 +435,7 @@ import static org.jooq.impl.SQLDataType.VARBINARY; import static org.jooq.impl.SQLDataType.VARCHAR; import static org.jooq.impl.SelectQueryImpl.EMULATE_SELECT_INTO_AS_CTAS; import static org.jooq.impl.SelectQueryImpl.NO_SUPPORT_FOR_UPDATE_OF_FIELDS; +import static org.jooq.impl.Tools.CONFIG; import static org.jooq.impl.Tools.CTX; import static org.jooq.impl.Tools.EMPTY_BYTE; import static org.jooq.impl.Tools.EMPTY_COLLECTION; @@ -13875,7 +13876,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { } IgnoreQuery(String sql) { - super(CTX.configuration()); + super(CONFIG); this.sql = sql; } diff --git a/jOOQ/src/main/java/org/jooq/impl/RecordDataType.java b/jOOQ/src/main/java/org/jooq/impl/RecordDataType.java index b5ee2ba4e0..bde2d37235 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RecordDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/RecordDataType.java @@ -39,6 +39,7 @@ package org.jooq.impl; import static java.util.Comparator.comparing; import static java.util.stream.Collectors.toList; +import static org.jooq.impl.Tools.CONFIG; import static org.jooq.impl.Tools.CTX; import static org.jooq.impl.Tools.newRecord; import static org.jooq.impl.Tools.recordType; @@ -147,7 +148,7 @@ final class RecordDataType extends DefaultDataType { // [#12116] TODO: Move this logic into JSONReader to make it more generally useful if (object instanceof Record || object instanceof Map || object instanceof List) { - return newRecord(true, getRecordType(), row, CTX.configuration()) + return newRecord(true, getRecordType(), row, CONFIG) .operate(r -> { // [#12014] TODO: Fix this and remove workaround diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 8b4bc04812..4fe84d1548 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -1288,7 +1288,7 @@ final class Tools { Converter result = configuration(configuration).converterProvider().provide(tType, uType); if (result == null) - result = CTX.configuration().converterProvider().provide(tType, uType); + result = CONFIG.converterProvider().provide(tType, uType); // [#11823] [#12208] The new ad-hoc conversion API tries to avoid the Class literal // meaning there are perfectly reasonable API usages when using MULTISET @@ -3381,7 +3381,8 @@ final class Tools { - static final DSLContext CTX = DSL.using(new DefaultConfiguration()); + static final Configuration CONFIG = new DefaultConfiguration(); + static final DSLContext CTX = DSL.using(CONFIG); /** * A possibly inefficient but stable way to generate an alias for any