You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rc...@apache.org on 2020/05/08 03:40:27 UTC
[james-project] 02/04: JAMES-3140 Enable easily printing executed
Cassandra statements
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit fd9e2de68282884c3d2f19d19bd0c12cfd32e9d0
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu May 7 16:09:06 2020 +0700
JAMES-3140 Enable easily printing executed Cassandra statements
This is helping a lot writing instrumented tests for Cassandra, and allow
easy retrieval of the statements to interact with.
I chose System output for it to be visible easily by default in the test
console, without modifying logging configuration.
---
.../james/backends/cassandra/TestingSession.java | 36 ++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
index c8a7a54..f591286 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
@@ -21,6 +21,7 @@ package org.apache.james.backends.cassandra;
import java.util.Map;
+import com.datastax.driver.core.BoundStatement;
import com.datastax.driver.core.CloseFuture;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.PreparedStatement;
@@ -28,16 +29,23 @@ import com.datastax.driver.core.RegularStatement;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.ResultSetFuture;
import com.datastax.driver.core.Session;
+import com.datastax.driver.core.SimpleStatement;
import com.datastax.driver.core.Statement;
import com.google.common.util.concurrent.ListenableFuture;
public class TestingSession implements Session {
private final Session delegate;
private volatile Scenario scenario;
+ private volatile boolean printStatements;
public TestingSession(Session delegate) {
this.delegate = delegate;
this.scenario = Scenario.NOTHING;
+ this.printStatements = false;
+ }
+
+ public void printStatements() {
+ printStatements = true;
}
public void registerScenario(Scenario scenario) {
@@ -65,46 +73,74 @@ public class TestingSession implements Session {
@Override
public ResultSet execute(String query) {
+ printStatement(query);
return delegate.execute(query);
}
@Override
public ResultSet execute(String query, Object... values) {
+ printStatement(query);
return delegate.execute(query, values);
}
@Override
public ResultSet execute(String query, Map<String, Object> values) {
+ printStatement(query);
return delegate.execute(query, values);
}
@Override
public ResultSet execute(Statement statement) {
+ printStatement(statement);
return delegate.execute(statement);
}
@Override
public ResultSetFuture executeAsync(String query) {
+ printStatement(query);
return delegate.executeAsync(query);
}
@Override
public ResultSetFuture executeAsync(String query, Object... values) {
+ printStatement(query);
return delegate.executeAsync(query, values);
}
@Override
public ResultSetFuture executeAsync(String query, Map<String, Object> values) {
+ printStatement(query);
return delegate.executeAsync(query, values);
}
@Override
public ResultSetFuture executeAsync(Statement statement) {
+ printStatement(statement);
return scenario
.getCorrespondingBehavior(statement)
.execute(delegate, statement);
}
+ private void printStatement(String query) {
+ if (printStatements) {
+ System.out.println("Executing: " + query);
+ }
+ }
+
+ private void printStatement(Statement statement) {
+ if (printStatements) {
+ if (statement instanceof BoundStatement) {
+ BoundStatement boundStatement = (BoundStatement) statement;
+ System.out.println("Executing: " + boundStatement.preparedStatement().getQueryString());
+ } else if (statement instanceof SimpleStatement) {
+ SimpleStatement simpleStatement = (SimpleStatement) statement;
+ System.out.println("Executing: " + simpleStatement.getQueryString());
+ } else {
+ System.out.println("Executing: " + statement);
+ }
+ }
+ }
+
@Override
public PreparedStatement prepare(String query) {
return delegate.prepare(query);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org