From 513c8f2efb47c945fc187027aa5fd27a78c9599a Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Tue, 25 Mar 2025 10:08:54 -0500 Subject: [PATCH 1/3] turned down some loggly messages, added utility method to value utils --- .../RunRecordScriptAutomationHandler.java | 2 +- .../AbstractTableSyncTransformStep.java | 4 +-- .../qqq/backend/core/utils/StringUtils.java | 27 +++++++++++++++++++ .../qqq/backend/core/utils/ValueUtils.java | 3 ++- .../src/main/resources/log4j2.xml | 24 +++++++---------- .../module/api/actions/BaseAPIActionUtil.java | 6 +++++ 6 files changed, 47 insertions(+), 19 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/automation/RunRecordScriptAutomationHandler.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/automation/RunRecordScriptAutomationHandler.java index 1b4d997d..2f77c623 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/automation/RunRecordScriptAutomationHandler.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/automation/RunRecordScriptAutomationHandler.java @@ -83,7 +83,7 @@ public class RunRecordScriptAutomationHandler extends RecordAutomationHandler } QRecord scriptRevision = queryOutput.getRecords().get(0); - LOG.info("Running script against records", logPair("scriptRevisionId", scriptRevision.getValue("id")), logPair("scriptId", scriptRevision.getValue("scriptIdd"))); + LOG.debug("Running script against records", logPair("scriptRevisionId", scriptRevision.getValue("id")), logPair("scriptId", scriptRevision.getValue("scriptIdd"))); RunAdHocRecordScriptInput input = new RunAdHocRecordScriptInput(); input.setCodeReference(new AdHocScriptCodeReference().withScriptRevisionRecord(scriptRevision)); diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/tablesync/AbstractTableSyncTransformStep.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/tablesync/AbstractTableSyncTransformStep.java index c8f6b82e..1565d3f3 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/tablesync/AbstractTableSyncTransformStep.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/tablesync/AbstractTableSyncTransformStep.java @@ -356,12 +356,12 @@ public abstract class AbstractTableSyncTransformStep extends AbstractTransformSt { if(existingRecord != null) { - LOG.info("Skipping storing existing record because this sync process is set to not perform updates"); + LOG.debug("Skipping storing existing record because this sync process is set to not perform updates"); willNotInsert.incrementCountAndAddPrimaryKey(sourcePrimaryKey); } else { - LOG.info("Skipping storing new record because this sync process is set to not perform inserts"); + LOG.debug("Skipping storing new record because this sync process is set to not perform inserts"); willNotUpdate.incrementCountAndAddPrimaryKey(sourcePrimaryKey); } continue; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/StringUtils.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/StringUtils.java index 78e3ed81..27a369c5 100755 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/StringUtils.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/StringUtils.java @@ -475,4 +475,31 @@ public class StringUtils return (s); } + + + /*************************************************************************** + ** + ***************************************************************************/ + public static String appendIncrementingSuffix(String input) + { + //////////////////////////////// + // remove any existing suffix // + //////////////////////////////// + String base = input.replaceAll(" \\(\\d+\\)$", ""); + if(input.matches(".* \\(\\d+\\)$")) + { + ////////////////////////// + // increment if matches // + ////////////////////////// + int current = Integer.parseInt(input.replaceAll(".* \\((\\d+)\\)$", "$1")); + return base + " (" + (current + 1) + ")"; + } + else + { + //////////////////////////////////// + // no match so put a 1 at the end // + //////////////////////////////////// + return base + " (1)"; + } + } } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/ValueUtils.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/ValueUtils.java index 1e791abd..5d37a406 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/ValueUtils.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/ValueUtils.java @@ -56,6 +56,7 @@ public class ValueUtils private static final DateTimeFormatter dateTimeFormatter_yyyyMMddWithDashes = DateTimeFormatter.ofPattern("yyyy-MM-dd"); private static final DateTimeFormatter dateTimeFormatter_MdyyyyWithSlashes = DateTimeFormatter.ofPattern("M/d/yyyy"); + private static final DateTimeFormatter dateTimeFormatter_MdyyWithSlashes = DateTimeFormatter.ofPattern("M/d/yyyy"); private static final DateTimeFormatter dateTimeFormatter_yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd"); @@ -450,7 +451,7 @@ public class ValueUtils private static LocalDate tryLocalDateParsers(String s) { DateTimeParseException lastException = null; - for(DateTimeFormatter dateTimeFormatter : List.of(dateTimeFormatter_yyyyMMddWithDashes, dateTimeFormatter_MdyyyyWithSlashes, dateTimeFormatter_yyyyMMdd)) + for(DateTimeFormatter dateTimeFormatter : List.of(dateTimeFormatter_yyyyMMddWithDashes, dateTimeFormatter_MdyyyyWithSlashes, dateTimeFormatter_yyyyMMdd, dateTimeFormatter_MdyyWithSlashes)) { try { diff --git a/qqq-backend-core/src/main/resources/log4j2.xml b/qqq-backend-core/src/main/resources/log4j2.xml index 8883de80..3705124f 100644 --- a/qqq-backend-core/src/main/resources/log4j2.xml +++ b/qqq-backend-core/src/main/resources/log4j2.xml @@ -18,22 +18,16 @@ - - - - - - - - + + + + - - - - - - - + + + + + diff --git a/qqq-backend-module-api/src/main/java/com/kingsrook/qqq/backend/module/api/actions/BaseAPIActionUtil.java b/qqq-backend-module-api/src/main/java/com/kingsrook/qqq/backend/module/api/actions/BaseAPIActionUtil.java index c4b478ab..1ebdc1fc 100644 --- a/qqq-backend-module-api/src/main/java/com/kingsrook/qqq/backend/module/api/actions/BaseAPIActionUtil.java +++ b/qqq-backend-module-api/src/main/java/com/kingsrook/qqq/backend/module/api/actions/BaseAPIActionUtil.java @@ -39,6 +39,7 @@ import java.util.function.Supplier; import com.kingsrook.qqq.backend.core.actions.tables.InsertAction; import com.kingsrook.qqq.backend.core.context.QContext; import com.kingsrook.qqq.backend.core.exceptions.QException; +import com.kingsrook.qqq.backend.core.exceptions.QNotFoundException; import com.kingsrook.qqq.backend.core.exceptions.QUserFacingException; import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.model.actions.AbstractTableActionInput; @@ -208,6 +209,11 @@ public class BaseAPIActionUtil return rs; } + catch(QNotFoundException qnfe) + { + LOG.info("Not found", qnfe); + throw new QException("Error executing get: " + qnfe.getMessage(), qnfe); + } catch(Exception e) { LOG.error("Error in API get", e); From 133e507c93eb0699c3b4d96e0568ab1f8ea3aad0 Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Tue, 25 Mar 2025 11:23:58 -0500 Subject: [PATCH 2/3] put back root log level --- qqq-backend-core/src/main/resources/log4j2.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/qqq-backend-core/src/main/resources/log4j2.xml b/qqq-backend-core/src/main/resources/log4j2.xml index 3705124f..19c618c4 100644 --- a/qqq-backend-core/src/main/resources/log4j2.xml +++ b/qqq-backend-core/src/main/resources/log4j2.xml @@ -26,8 +26,7 @@ - - + From 7af23e52d679f18e24c28c408e5db75762069745 Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Tue, 25 Mar 2025 12:16:48 -0500 Subject: [PATCH 3/3] feedback from code review --- .../qqq/backend/core/utils/ValueUtils.java | 3 +-- qqq-backend-core/src/main/resources/log4j2.xml | 1 - .../qqq/backend/core/utils/StringUtilsTest.java | 16 ++++++++++++++++ .../qqq/backend/core/utils/ValueUtilsTest.java | 2 +- .../module/api/actions/BaseAPIActionUtil.java | 2 +- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/ValueUtils.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/ValueUtils.java index 5d37a406..1e791abd 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/ValueUtils.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/ValueUtils.java @@ -56,7 +56,6 @@ public class ValueUtils private static final DateTimeFormatter dateTimeFormatter_yyyyMMddWithDashes = DateTimeFormatter.ofPattern("yyyy-MM-dd"); private static final DateTimeFormatter dateTimeFormatter_MdyyyyWithSlashes = DateTimeFormatter.ofPattern("M/d/yyyy"); - private static final DateTimeFormatter dateTimeFormatter_MdyyWithSlashes = DateTimeFormatter.ofPattern("M/d/yyyy"); private static final DateTimeFormatter dateTimeFormatter_yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd"); @@ -451,7 +450,7 @@ public class ValueUtils private static LocalDate tryLocalDateParsers(String s) { DateTimeParseException lastException = null; - for(DateTimeFormatter dateTimeFormatter : List.of(dateTimeFormatter_yyyyMMddWithDashes, dateTimeFormatter_MdyyyyWithSlashes, dateTimeFormatter_yyyyMMdd, dateTimeFormatter_MdyyWithSlashes)) + for(DateTimeFormatter dateTimeFormatter : List.of(dateTimeFormatter_yyyyMMddWithDashes, dateTimeFormatter_MdyyyyWithSlashes, dateTimeFormatter_yyyyMMdd)) { try { diff --git a/qqq-backend-core/src/main/resources/log4j2.xml b/qqq-backend-core/src/main/resources/log4j2.xml index 19c618c4..60ffc1f6 100644 --- a/qqq-backend-core/src/main/resources/log4j2.xml +++ b/qqq-backend-core/src/main/resources/log4j2.xml @@ -18,7 +18,6 @@ - diff --git a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/StringUtilsTest.java b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/StringUtilsTest.java index bc08293f..ae8ce0d3 100644 --- a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/StringUtilsTest.java +++ b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/StringUtilsTest.java @@ -334,4 +334,20 @@ class StringUtilsTest extends BaseTest assertEquals("a", StringUtils.emptyToNull("a")); } + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void testAppendIncrementingSuffix() + { + assertEquals("test (1)", StringUtils.appendIncrementingSuffix("test")); + assertEquals("test (2)", StringUtils.appendIncrementingSuffix("test (1)")); + assertEquals("test (a) (1)", StringUtils.appendIncrementingSuffix("test (a)")); + assertEquals("test (a32) (1)", StringUtils.appendIncrementingSuffix("test (a32)")); + assertEquals("test ((2)) (1)", StringUtils.appendIncrementingSuffix("test ((2))")); + assertEquals("test ((2)) (101)", StringUtils.appendIncrementingSuffix("test ((2)) (100)")); + } + } diff --git a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/ValueUtilsTest.java b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/ValueUtilsTest.java index ee1f69f1..6738ac31 100644 --- a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/ValueUtilsTest.java +++ b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/ValueUtilsTest.java @@ -362,4 +362,4 @@ class ValueUtilsTest extends BaseTest assertEquals(QFieldType.TIME, ValueUtils.inferQFieldTypeFromValue(LocalTime.now(), null)); } -} \ No newline at end of file +} diff --git a/qqq-backend-module-api/src/main/java/com/kingsrook/qqq/backend/module/api/actions/BaseAPIActionUtil.java b/qqq-backend-module-api/src/main/java/com/kingsrook/qqq/backend/module/api/actions/BaseAPIActionUtil.java index 1ebdc1fc..300a60b7 100644 --- a/qqq-backend-module-api/src/main/java/com/kingsrook/qqq/backend/module/api/actions/BaseAPIActionUtil.java +++ b/qqq-backend-module-api/src/main/java/com/kingsrook/qqq/backend/module/api/actions/BaseAPIActionUtil.java @@ -212,7 +212,7 @@ public class BaseAPIActionUtil catch(QNotFoundException qnfe) { LOG.info("Not found", qnfe); - throw new QException("Error executing get: " + qnfe.getMessage(), qnfe); + throw (qnfe); } catch(Exception e) {