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

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new 281e9b819 Debugging CAY2723IT test failure
281e9b819 is described below

commit 281e9b819740e983e19737ed97b0418d39a15726
Author: Nikita Timofeev <[email protected]>
AuthorDate: Tue Mar 14 16:38:20 2023 +0300

    Debugging CAY2723IT test failure
---
 .../java/org/apache/cayenne/access/CAY2723IT.java  | 46 +++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/CAY2723IT.java 
b/cayenne-server/src/test/java/org/apache/cayenne/access/CAY2723IT.java
index 6444304d5..de63a12d0 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/CAY2723IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/CAY2723IT.java
@@ -18,19 +18,29 @@
  ****************************************************************/
 package org.apache.cayenne.access;
 
+import org.apache.cayenne.access.translator.ParameterBinding;
+import org.apache.cayenne.configuration.RuntimeProperties;
+import org.apache.cayenne.di.Binder;
 import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.di.Module;
+import org.apache.cayenne.log.JdbcEventLogger;
+import org.apache.cayenne.log.Slf4jJdbcEventLogger;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
+import org.apache.cayenne.unit.di.server.ExtraModules;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.Assert.assertEquals;
 
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
+@ExtraModules(CAY2723IT.CustomLogModule.class)
 public class CAY2723IT extends ServerCase {
     @Inject
     private DataContext context;
@@ -63,6 +73,40 @@ public class CAY2723IT extends ServerCase {
 
         // here should be only single insert of the painting object
         int queryCounter = queryInterceptor.runWithQueryCounter(() -> 
context.commitChanges());
-        assertEquals(1, queryCounter);
+        assertEquals("", 1, queryCounter);
+    }
+
+    public static class CustomLogger extends Slf4jJdbcEventLogger {
+
+        private static final Logger logger = 
LoggerFactory.getLogger(JdbcEventLogger.class);
+
+        public CustomLogger(@Inject RuntimeProperties runtimeProperties) {
+            super(runtimeProperties);
+        }
+
+        @Override
+        public void log(String message) {
+            if (message != null) {
+                logger.error("\t>>>>>\t" + message);
+            }
+        }
+
+        @Override
+        public void logQuery(String sql, ParameterBinding[] bindings) {
+            StringBuilder buffer = new StringBuilder("\t>>>>>\t")
+                    .append(sql)
+                    .append(" ");
+            appendParameters(buffer, "bind", bindings);
+            if (buffer.length() > 0) {
+                logger.error(buffer.toString());
+            }
+        }
+    }
+
+    public static class CustomLogModule implements Module {
+        @Override
+        public void configure(Binder binder) {
+            binder.bind(JdbcEventLogger.class).to(CustomLogger.class);
+        }
     }
 }

Reply via email to