You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/10/18 14:30:06 UTC
[4/4] cayenne git commit: CAY-2485 Compact Slf4j Logger additional
tests release notes cleanup
CAY-2485 Compact Slf4j Logger
additional tests
release notes
cleanup
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/7694a64d
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/7694a64d
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/7694a64d
Branch: refs/heads/master
Commit: 7694a64d3b83175e3e2ffd2db315e78c1bf0813f
Parents: a4ad4b6
Author: Nikita Timofeev <st...@gmail.com>
Authored: Thu Oct 18 17:29:52 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Thu Oct 18 17:29:52 2018 +0300
----------------------------------------------------------------------
RELEASE-NOTES.txt | 1 +
.../log/CompactSlf4jJdbcEventLogger.java | 15 ++--
.../log/CompactSlf4jJdbcEventLoggerTest.java | 80 +++++++++++++-------
.../src/test/resources/logback-test.xml | 42 ----------
4 files changed, 60 insertions(+), 78 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7694a64d/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index e1c1e28..dce64ec 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -20,6 +20,7 @@ CAY-2473 Modeler: cleanup attributes and relationship editors
CAY-2474 Modeler: swap buttons in dialog toolbar
CAY-2475 Modeler: move inheritance icon to name column in objAttr table and objRel table
CAY-2481 Support for Object[] as return type in SQLTemplate and SQLExec
+CAY-2485 Compact Slf4j Logger
CAY-2487 Removed usage of CayenneException.
CAY-2489 Add validation to the case of not to PK relationships
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7694a64d/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java b/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java
index d4d57a9..b6ea8b3 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java
@@ -65,8 +65,7 @@ public class CompactSlf4jJdbcEventLogger extends Slf4jJdbcEventLogger {
protected String processUnionSql(String sql) {
String modified = Pattern.compile(UNION.toLowerCase(), Pattern.CASE_INSENSITIVE).matcher(sql).replaceAll(UNION);
- String[] queries = modified.split(
- UNION);
+ String[] queries = modified.split(UNION);
List<String> formattedQueries = Arrays.stream(queries).map(this::trimSqlSelectColumns).collect(Collectors.toList());
StringBuilder buffer = new StringBuilder();
boolean used = false;
@@ -119,9 +118,7 @@ public class CompactSlf4jJdbcEventLogger extends Slf4jJdbcEventLogger {
String key = null;
String value;
- for (int i = 0; i < bindings.length; i++) {
- ParameterBinding b = bindings[i];
-
+ for (ParameterBinding b : bindings) {
if (b.isExcluded()) {
continue;
}
@@ -135,12 +132,12 @@ public class CompactSlf4jJdbcEventLogger extends Slf4jJdbcEventLogger {
if (b.getExtendedType() != null) {
value = b.getExtendedType().toString(b.getValue());
- } else if(b.getValue() == null) {
+ } else if (b.getValue() == null) {
value = "NULL";
} else {
- value = new StringBuilder(b.getValue().getClass().getName())
- .append("@")
- .append(System.identityHashCode(b.getValue())).toString();
+ value = b.getValue().getClass().getName() +
+ "@" +
+ System.identityHashCode(b.getValue());
}
List<String> objects = bindingsMap.computeIfAbsent(key, k -> new ArrayList<>());
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7694a64d/cayenne-server/src/test/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLoggerTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLoggerTest.java b/cayenne-server/src/test/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLoggerTest.java
index 4846463..84ecd6c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLoggerTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLoggerTest.java
@@ -25,32 +25,54 @@ import org.apache.cayenne.access.types.ExtendedType;
import org.apache.cayenne.access.types.IntegerType;
import org.apache.cayenne.configuration.DefaultRuntimeProperties;
import org.apache.cayenne.map.DbAttribute;
+import org.junit.Before;
import org.junit.Test;
import java.util.Collections;
-import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.*;
public class CompactSlf4jJdbcEventLoggerTest {
- @Test
- public void logWithCompact_Union() {
+ private CompactSlf4jJdbcEventLogger logger;
- CompactSlf4jJdbcEventLogger compactSl4jJdbcEventLogger = new CompactSlf4jJdbcEventLogger(new DefaultRuntimeProperties(Collections.emptyMap()));
- DbAttributeBinding[] bindings = createBindings();
+ @Before
+ public void createLogger() {
+ logger = new CompactSlf4jJdbcEventLogger(new DefaultRuntimeProperties(Collections.emptyMap()));
+ }
+
+ @Test
+ public void compactSimpleSql() {
+ String processesSelectSql = logger.trimSqlSelectColumns(
+ "SELECT t0.NAME AS ec0_0, t0.F_KEY1 AS ec0_1, t0.F_KEY2 AS ec0_2," +
+ " t0.PKEY AS ec0_3 FROM COMPOUND_FK_TEST t0 INNER JOIN COMPOUND_PK_TEST " +
+ "t1 ON (t0.F_KEY1 = t1.KEY1 AND t0.F_KEY2 = t1.KEY2) WHERE t1.NAME LIKE ?");
- String processesSelectSql = compactSl4jJdbcEventLogger.trimSqlSelectColumns("SELECT t0.NAME AS ec0_0, t0.F_KEY1 AS ec0_1, t0.F_KEY2 AS ec0_2," +
- " t0.PKEY AS ec0_3 FROM COMPOUND_FK_TEST t0 INNER JOIN COMPOUND_PK_TEST " +
- "t1 ON (t0.F_KEY1 = t1.KEY1 AND t0.F_KEY2 = t1.KEY2) WHERE t1.NAME LIKE ?");
assertEquals(processesSelectSql, "SELECT (4 columns) FROM COMPOUND_FK_TEST t0 " +
"INNER JOIN COMPOUND_PK_TEST t1 ON (t0.F_KEY1 = t1.KEY1 AND t0.F_KEY2 = t1.KEY2) " +
- "WHERE t1.NAME LIKE ?");
+ "WHERE t1.NAME LIKE ?");
+ }
- StringBuilder buffer = new StringBuilder();
- compactSl4jJdbcEventLogger.appendParameters(buffer, "bind", bindings);
- assertThat(buffer.toString(), is("[bind: 1->t0.NAME: {'', 52, 'true'}, 2->t0.F_KEY1: 'true']"));
- String processedUnionSql = compactSl4jJdbcEventLogger.processUnionSql(
+
+ @Test
+ public void compactNotSelect() {
+ String processedSql = logger.trimSqlSelectColumns(
+ "UPDATE test SET name = 'abc', value = 123 WHERE id = 321");
+
+ assertEquals("UPDATE test SET name = 'abc', value = 123 WHERE id = 321", processedSql);
+ }
+
+ @Test
+ public void compactSubSelect() {
+ String processedSql = logger.trimSqlSelectColumns(
+ "INSERT INTO test1 SELECT column1, column2, column3, column4, column5, column6 FROM test2 WHERE id = 321");
+
+ assertEquals("INSERT INTO test1 SELECT (6 columns) FROM test2 WHERE id = 321", processedSql);
+ }
+
+ @Test
+ public void compactUnion() {
+ String processedUnionSql = logger.processUnionSql(
"SELECT t0.NAME AS ec0_0, t0.F_KEY1 AS ec0_1, " +
"t0.PKEY AS ec0_3 FROM COMPOUND_FK_TEST t0 INNER JOIN COMPOUND_PK_TEST " +
"t1 ON (t0.F_KEY1 = t1.KEY1 AND t0.F_KEY2 = t1.KEY2) WHERE t1.NAME LIKE ?" +
@@ -63,31 +85,35 @@ public class CompactSlf4jJdbcEventLoggerTest {
" t0.PKEY AS ec0_3 FROM COMPOUND_FK_TEST t0 INNER JOIN COMPOUND_PK_TEST " +
"t1 ON (t0.F_KEY1 = t1.KEY1 AND t0.F_KEY2 = t1.KEY2) WHERE t1.NAME LIKE ?");
- assertThat(processedUnionSql, is("SELECT t0.NAME AS ec0_0, t0.F_KEY1 AS ec0_1, t0.PKEY AS ec0_3 FROM COMPOUND_FK_TEST t0 " +
+ assertEquals(processedUnionSql,
+ "SELECT t0.NAME AS ec0_0, t0.F_KEY1 AS ec0_1, t0.PKEY AS ec0_3 FROM COMPOUND_FK_TEST t0 " +
"INNER JOIN COMPOUND_PK_TEST t1 ON (t0.F_KEY1 = t1.KEY1 AND t0.F_KEY2 = t1.KEY2) " +
"WHERE t1.NAME LIKE ? UNION ALL SELECT t0.NAME AS ec0_0, t0.F_KEY1 AS ec0_1, t0.PKEY AS ec0_3 " +
"FROM COMPOUND_FK_TEST t0 INNER JOIN COMPOUND_PK_TEST t1 ON (t0.F_KEY1 = t1.KEY1 AND t0.F_KEY2 = t1.KEY2) " +
- "WHERE t1.NAME LIKE ? UNION all SELECT (4 columns) FROM COMPOUND_FK_TEST t0 INNER JOIN COMPOUND_PK_TEST t1 ON (t0.F_KEY1 = t1.KEY1 AND t0.F_KEY2 = t1.KEY2) " +
- "WHERE t1.NAME LIKE ?"));
-
+ "WHERE t1.NAME LIKE ? UNION all SELECT (4 columns) FROM COMPOUND_FK_TEST t0 " +
+ "INNER JOIN COMPOUND_PK_TEST t1 ON (t0.F_KEY1 = t1.KEY1 AND t0.F_KEY2 = t1.KEY2) " +
+ "WHERE t1.NAME LIKE ?");
}
- private DbAttributeBinding [] createBindings() {
- return new DbAttributeBinding[] { createBinding("t0.NAME", 1, "", new CharType(false, false)),
- createBinding("t0.NAME", 2, 52, new IntegerType()),
- createBinding("t0.NAME", 3, true, new BooleanType()),
- createBinding("t0.F_KEY1", 4, true, new BooleanType())};
+ @Test
+ public void compactBindings() {
+ StringBuilder buffer = new StringBuilder();
+ DbAttributeBinding[] bindings = new DbAttributeBinding[] {
+ createBinding("t0.NAME", 1, "", new CharType(false, false)),
+ createBinding("t0.NAME", 2, 52, new IntegerType()),
+ createBinding("t0.NAME", 3, true, new BooleanType()),
+ createBinding("t0.F_KEY1", 4, true, new BooleanType())
+ };
+ logger.appendParameters(buffer, "bind", bindings);
+
+ assertEquals(buffer.toString(), "[bind: 1->t0.NAME: {'', 52, 'true'}, 2->t0.F_KEY1: 'true']");
}
private DbAttributeBinding createBinding(String name, int position, Object object, ExtendedType type){
-
DbAttributeBinding dbAttributeBinding = new DbAttributeBinding(new DbAttribute(name));
dbAttributeBinding.setValue(object);
dbAttributeBinding.setStatementPosition(position);
- if (type != null) {
- dbAttributeBinding.setExtendedType(type);
- }
-
+ dbAttributeBinding.setExtendedType(type);
return dbAttributeBinding;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7694a64d/cayenne-server/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/logback-test.xml b/cayenne-server/src/test/resources/logback-test.xml
deleted file mode 100644
index 616beac..0000000
--- a/cayenne-server/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<configuration>
-
- <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
-
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <layout class="ch.qos.logback.classic.PatternLayout">
- <Pattern>
- %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
- </Pattern>
- </layout>
- </appender>
-
-
- <appender name="TEST-INFO"
- class="org.apache.cayenne.log.TestAppender">
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <Pattern>
- %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
- </Pattern>
- </encoder>
-
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- rollover daily -->
- <fileNamePattern>archived/error.%d{yyyy-MM-dd}.%i.log
- </fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>10MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
-
- </appender>
-
- <root level="info">
- <appender-ref ref="TEST-INFO" />
- </root>
-
- <logger name="org.apache.cayenne" level="info">
- <appender-ref ref="STDOUT"/>
- </logger>
-
-</configuration>
\ No newline at end of file