diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/DeleteOptions.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/DeleteOptions.java
index e5b66c879..6f96dea03 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/DeleteOptions.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/DeleteOptions.java
@@ -27,8 +27,8 @@ import org.springframework.data.cassandra.core.query.Filter;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
-import com.datastax.driver.core.ConsistencyLevel;
-import com.datastax.driver.core.policies.RetryPolicy;
+import com.datastax.oss.driver.api.core.ConsistencyLevel;
+import com.datastax.oss.driver.api.core.retry.RetryPolicy;
/**
* Extension to {@link WriteOptions} for use with {@code DELETE} operations.
@@ -132,6 +132,7 @@ public class DeleteOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#retryPolicy(com.datastax.driver.core.policies.RetryPolicy)
*/
@Override
+ @Deprecated
public DeleteOptionsBuilder retryPolicy(RetryPolicy driverRetryPolicy) {
super.retryPolicy(driverRetryPolicy);
@@ -142,16 +143,28 @@ public class DeleteOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#fetchSize(int)
*/
@Override
+ @Deprecated
public DeleteOptionsBuilder fetchSize(int fetchSize) {
super.fetchSize(fetchSize);
return this;
}
+ /* (non-Javadoc)
+ * @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#pageSize(int)
+ */
+ @Override
+ public DeleteOptionsBuilder pageSize(int pageSize) {
+
+ super.pageSize(pageSize);
+ return this;
+ }
+
/* (non-Javadoc)
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#readTimeout(long)
*/
@Override
+ @Deprecated
public DeleteOptionsBuilder readTimeout(long readTimeout) {
super.readTimeout(readTimeout);
@@ -173,9 +186,9 @@ public class DeleteOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#readTimeout(java.time.Duration)
*/
@Override
- public DeleteOptionsBuilder readTimeout(Duration readTimeout) {
+ public DeleteOptionsBuilder timeout(Duration timeout) {
- super.readTimeout(readTimeout);
+ super.timeout(timeout);
return this;
}
@@ -299,7 +312,7 @@ public class DeleteOptions extends WriteOptions {
*/
public DeleteOptions build() {
- return new DeleteOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.fetchSize, this.readTimeout,
+ return new DeleteOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.pageSize, this.timeout,
this.ttl, this.timestamp, this.ifExists, this.ifCondition);
}
}
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/InsertOptions.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/InsertOptions.java
index 05e019da7..27aba15ec 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/InsertOptions.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/InsertOptions.java
@@ -24,8 +24,8 @@ import java.util.concurrent.TimeUnit;
import org.springframework.data.cassandra.core.cql.WriteOptions;
import org.springframework.lang.Nullable;
-import com.datastax.driver.core.ConsistencyLevel;
-import com.datastax.driver.core.policies.RetryPolicy;
+import com.datastax.oss.driver.api.core.ConsistencyLevel;
+import com.datastax.oss.driver.api.core.retry.RetryPolicy;
/**
* Extension to {@link WriteOptions} for use with {@code INSERT} operations.
@@ -124,7 +124,7 @@ public class InsertOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#consistencyLevel(com.datastax.driver.core.ConsistencyLevel)
*/
@Override
- public InsertOptionsBuilder consistencyLevel(com.datastax.driver.core.ConsistencyLevel consistencyLevel) {
+ public InsertOptionsBuilder consistencyLevel(ConsistencyLevel consistencyLevel) {
super.consistencyLevel(consistencyLevel);
return this;
@@ -134,7 +134,8 @@ public class InsertOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#retryPolicy(com.datastax.driver.core.policies.RetryPolicy)
*/
@Override
- public InsertOptionsBuilder retryPolicy(com.datastax.driver.core.policies.RetryPolicy driverRetryPolicy) {
+ @Deprecated
+ public InsertOptionsBuilder retryPolicy(RetryPolicy driverRetryPolicy) {
super.retryPolicy(driverRetryPolicy);
return this;
@@ -144,14 +145,24 @@ public class InsertOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#fetchSize(int)
*/
@Override
+ @Deprecated
public InsertOptionsBuilder fetchSize(int fetchSize) {
return (InsertOptionsBuilder) super.fetchSize(fetchSize);
}
+ /* (non-Javadoc)
+ * @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#pageSize(int)
+ */
+ @Override
+ public InsertOptionsBuilder pageSize(int pageSize) {
+ return (InsertOptionsBuilder) super.pageSize(pageSize);
+ }
+
/* (non-Javadoc)
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#readTimeout(long)
*/
@Override
+ @Deprecated
public InsertOptionsBuilder readTimeout(long readTimeout) {
super.readTimeout(readTimeout);
@@ -173,9 +184,9 @@ public class InsertOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#readTimeout(java.time.Duration)
*/
@Override
- public InsertOptionsBuilder readTimeout(Duration readTimeout) {
+ public InsertOptionsBuilder timeout(Duration timeout) {
- super.readTimeout(readTimeout);
+ super.timeout(timeout);
return this;
}
@@ -295,7 +306,7 @@ public class InsertOptions extends WriteOptions {
* @return a new {@link InsertOptions} with the configured values
*/
public InsertOptions build() {
- return new InsertOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.fetchSize, this.readTimeout,
+ return new InsertOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.pageSize, this.timeout,
this.ttl, this.timestamp, this.ifNotExists, this.insertNulls);
}
}
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/UpdateOptions.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/UpdateOptions.java
index ae8bd475f..ace6a8fa7 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/UpdateOptions.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/UpdateOptions.java
@@ -27,8 +27,8 @@ import org.springframework.data.cassandra.core.query.Filter;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
-import com.datastax.driver.core.ConsistencyLevel;
-import com.datastax.driver.core.policies.RetryPolicy;
+import com.datastax.oss.driver.api.core.ConsistencyLevel;
+import com.datastax.oss.driver.api.core.retry.RetryPolicy;
/**
* Extension to {@link WriteOptions} for use with {@code UPDATE} operations.
@@ -128,7 +128,7 @@ public class UpdateOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#consistencyLevel(com.datastax.driver.core.ConsistencyLevel)
*/
@Override
- public UpdateOptionsBuilder consistencyLevel(com.datastax.driver.core.ConsistencyLevel consistencyLevel) {
+ public UpdateOptionsBuilder consistencyLevel(ConsistencyLevel consistencyLevel) {
super.consistencyLevel(consistencyLevel);
return this;
@@ -138,7 +138,8 @@ public class UpdateOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#retryPolicy(com.datastax.driver.core.policies.RetryPolicy)
*/
@Override
- public UpdateOptionsBuilder retryPolicy(com.datastax.driver.core.policies.RetryPolicy driverRetryPolicy) {
+ @Deprecated
+ public UpdateOptionsBuilder retryPolicy(RetryPolicy driverRetryPolicy) {
super.retryPolicy(driverRetryPolicy);
return this;
@@ -148,16 +149,28 @@ public class UpdateOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#fetchSize(int)
*/
@Override
+ @Deprecated
public UpdateOptionsBuilder fetchSize(int fetchSize) {
super.fetchSize(fetchSize);
return this;
}
+ /* (non-Javadoc)
+ * @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#pageSize(int)
+ */
+ @Override
+ public UpdateOptionsBuilder pageSize(int pageSize) {
+
+ super.pageSize(pageSize);
+ return this;
+ }
+
/* (non-Javadoc)
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#readTimeout(long)
*/
@Override
+ @Deprecated
public UpdateOptionsBuilder readTimeout(long readTimeout) {
super.readTimeout(readTimeout);
@@ -179,9 +192,9 @@ public class UpdateOptions extends WriteOptions {
* @see org.springframework.data.cassandra.core.cql.WriteOptions.WriteOptionsBuilder#readTimeout(java.time.Duration)
*/
@Override
- public UpdateOptionsBuilder readTimeout(Duration readTimeout) {
+ public UpdateOptionsBuilder timeout(Duration timeout) {
- super.readTimeout(readTimeout);
+ super.timeout(timeout);
return this;
}
@@ -307,7 +320,7 @@ public class UpdateOptions extends WriteOptions {
*/
public UpdateOptions build() {
- return new UpdateOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.fetchSize, this.readTimeout,
+ return new UpdateOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.pageSize, this.timeout,
this.ttl, this.timestamp, this.ifExists, this.ifCondition);
}
}
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/QueryOptions.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/QueryOptions.java
index f8f313032..b21b3ac5e 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/QueryOptions.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/QueryOptions.java
@@ -23,9 +23,8 @@ import java.util.concurrent.TimeUnit;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
-import com.datastax.driver.core.ConsistencyLevel;
-import com.datastax.driver.core.SocketOptions;
-import com.datastax.driver.core.policies.RetryPolicy;
+import com.datastax.oss.driver.api.core.ConsistencyLevel;
+import com.datastax.oss.driver.api.core.retry.RetryPolicy;
/**
* Cassandra Query Options for queries. {@link QueryOptions} allow tuning of various query options on a per-request
@@ -45,7 +44,7 @@ public class QueryOptions {
private final Duration readTimeout;
- private final @Nullable Integer fetchSize;
+ private final @Nullable Integer pageSize;
private final @Nullable RetryPolicy retryPolicy;
@@ -55,7 +54,7 @@ public class QueryOptions {
this.consistencyLevel = consistencyLevel;
this.retryPolicy = retryPolicy;
this.tracing = tracing;
- this.fetchSize = fetchSize;
+ this.pageSize = fetchSize;
this.readTimeout = readTimeout;
}
@@ -72,7 +71,7 @@ public class QueryOptions {
this.consistencyLevel = consistencyLevel;
this.retryPolicy = retryPolicy;
this.tracing = false;
- this.fetchSize = null;
+ this.pageSize = null;
this.readTimeout = Duration.ofMillis(-1);
}
@@ -120,8 +119,8 @@ public class QueryOptions {
* @since 1.5
*/
@Nullable
- protected Integer getFetchSize() {
- return this.fetchSize;
+ protected Integer getPageSize() {
+ return this.pageSize;
}
/**
@@ -161,9 +160,9 @@ public class QueryOptions {
protected @Nullable ConsistencyLevel consistencyLevel;
- protected Duration readTimeout = Duration.ofMillis(-1);
+ protected Duration timeout = Duration.ofMillis(-1);
- protected @Nullable Integer fetchSize;
+ protected @Nullable Integer pageSize;
protected @Nullable RetryPolicy retryPolicy;
@@ -172,8 +171,8 @@ public class QueryOptions {
QueryOptionsBuilder(QueryOptions queryOptions) {
this.consistencyLevel = queryOptions.consistencyLevel;
- this.fetchSize = queryOptions.fetchSize;
- this.readTimeout = queryOptions.readTimeout;
+ this.pageSize = queryOptions.pageSize;
+ this.timeout = queryOptions.readTimeout;
this.retryPolicy = queryOptions.retryPolicy;
this.tracing = queryOptions.tracing;
}
@@ -199,7 +198,9 @@ public class QueryOptions {
*
* @param retryPolicy must not be {@literal null}.
* @return {@code this} {@link QueryOptionsBuilder}
+ * @deprecated since 3.0, use execution profiles instead.
*/
+ @Deprecated
public QueryOptionsBuilder retryPolicy(RetryPolicy retryPolicy) {
Assert.notNull(retryPolicy, "RetryPolicy must not be null");
@@ -210,7 +211,7 @@ public class QueryOptions {
}
/**
- * Sets the query fetch size for {@link com.datastax.driver.core.ResultSet} chunks.
+ * Sets the query fetch size for {@link com.datastax.oss.driver.api.core.cql.ResultSet} chunks.
*
* The fetch size controls how much resulting rows will be retrieved simultaneously (the goal being to avoid loading
* too much results in memory for queries yielding large results). Please note that while value as low as 1 can be
@@ -219,14 +220,29 @@ public class QueryOptions {
* @param fetchSize the number of rows to fetch per chunking request. To disable chunking of the result set, use
* {@code fetchSize == Integer.MAX_VALUE}. Negative values are not allowed.
* @return {@code this} {@link QueryOptionsBuilder}
- * @see com.datastax.driver.core.QueryOptions#getFetchSize()
- * @see com.datastax.driver.core.Cluster.Builder#withQueryOptions(com.datastax.driver.core.QueryOptions)
+ * @deprecated since 3.0, use {@link #pageSize(int)}.
*/
+ @Deprecated
public QueryOptionsBuilder fetchSize(int fetchSize) {
+ return pageSize(fetchSize);
+ }
- Assert.isTrue(fetchSize >= 0, "FetchSize must be greater than equal to zero");
+ /**
+ * Sets the query fetch size for {@link com.datastax.oss.driver.api.core.cql.ResultSet} chunks.
+ *
+ * The fetch size controls how much resulting rows will be retrieved simultaneously (the goal being to avoid loading
+ * too much results in memory for queries yielding large results). Please note that while value as low as 1 can be
+ * used, it is *highly* discouraged to use such a low value in practice as it will yield very poor performance.
+ *
+ * @param pageSize the number of rows to fetch per chunking request. To disable chunking of the result set, use
+ * {@code pageSize == Integer.MAX_VALUE}. Negative values are not allowed.
+ * @return {@code this} {@link QueryOptionsBuilder}
+ */
+ public QueryOptionsBuilder pageSize(int pageSize) {
- this.fetchSize = fetchSize;
+ Assert.isTrue(pageSize >= 0, "Page size must be greater than equal to zero");
+
+ this.pageSize = pageSize;
return this;
}
@@ -237,11 +253,12 @@ public class QueryOptions {
* @param readTimeout the read timeout in milliseconds. Negative values are not allowed. If it is {@code 0}, the
* read timeout will be disabled for this statement.
* @return {@code this} {@link QueryOptionsBuilder}
- * @see SocketOptions#getReadTimeoutMillis()
- * @see com.datastax.driver.core.Cluster.Builder#withSocketOptions(SocketOptions)
+ * @see com.datastax.oss.driver.api.core.cql.SimpleStatement#setTimeout(Duration)
+ * @deprecated since 3.0, use {@link #timeout(Duration)}
*/
+ @Deprecated
public QueryOptionsBuilder readTimeout(long readTimeout) {
- return readTimeout(Duration.ofMillis(readTimeout));
+ return timeout(Duration.ofMillis(readTimeout));
}
/**
@@ -251,9 +268,8 @@ public class QueryOptions {
* will be disabled for this statement.
* @param timeUnit the {@link TimeUnit} for the supplied timeout; must not be {@literal null}.
* @return {@code this} {@link QueryOptionsBuilder}
- * @see SocketOptions#getReadTimeoutMillis()
- * @see com.datastax.driver.core.Cluster.Builder#withSocketOptions(SocketOptions)
- * @deprecated since 2.0, use {@link #readTimeout(Duration)}.
+ * @see com.datastax.oss.driver.api.core.cql.SimpleStatement#setTimeout(Duration)
+ * @deprecated since 2.0, use {@link #timeout(Duration)}.
*/
@Deprecated
public QueryOptionsBuilder readTimeout(long readTimeout, TimeUnit timeUnit) {
@@ -261,7 +277,7 @@ public class QueryOptions {
Assert.isTrue(readTimeout >= 0, "ReadTimeout must be greater than equal to zero");
Assert.notNull(timeUnit, "TimeUnit must not be null");
- return readTimeout(Duration.ofMillis(timeUnit.toMillis(readTimeout)));
+ return timeout(Duration.ofMillis(timeUnit.toMillis(readTimeout)));
}
/**
@@ -270,16 +286,35 @@ public class QueryOptions {
* @param readTimeout the read timeout. Negative values are not allowed. If it is {@code 0}, the read timeout will
* be disabled for this statement.
* @return {@code this} {@link QueryOptionsBuilder}
- * @see SocketOptions#getReadTimeoutMillis()
- * @see com.datastax.driver.core.Cluster.Builder#withSocketOptions(SocketOptions)
+ * @see com.datastax.oss.driver.api.core.cql.SimpleStatement#setTimeout(Duration)
* @since 2.0
+ * @deprecated since 3.0, use {@link #timeout(Duration)}
*/
+ @Deprecated
public QueryOptionsBuilder readTimeout(Duration readTimeout) {
Assert.isTrue(!readTimeout.isZero() && !readTimeout.isNegative(),
"ReadTimeout must be greater than equal to zero");
- this.readTimeout = readTimeout;
+ this.timeout = readTimeout;
+
+ return this;
+ }
+
+ /**
+ * Sets the request timeout. Overrides the default timeout.
+ *
+ * @param timeout the read timeout. Negative values are not allowed. If it is {@code 0}, the read timeout will be
+ * disabled for this statement.
+ * @return {@code this} {@link QueryOptionsBuilder}
+ * @see com.datastax.oss.driver.api.core.cql.SimpleStatement#setTimeout(Duration)
+ * @since 3.0
+ */
+ public QueryOptionsBuilder timeout(Duration timeout) {
+
+ Assert.isTrue(!timeout.isZero() && !timeout.isNegative(), "ReadTimeout must be greater than equal to zero");
+
+ this.timeout = timeout;
return this;
}
@@ -312,7 +347,7 @@ public class QueryOptions {
* @return a new {@link QueryOptions} with the configured values
*/
public QueryOptions build() {
- return new QueryOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.fetchSize, this.readTimeout);
+ return new QueryOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.pageSize, this.timeout);
}
}
}
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/QueryOptionsUtil.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/QueryOptionsUtil.java
index f9e3f9298..2ce4cbebd 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/QueryOptionsUtil.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/QueryOptionsUtil.java
@@ -17,12 +17,11 @@ package org.springframework.data.cassandra.core.cql;
import org.springframework.util.Assert;
-import com.datastax.driver.core.PreparedStatement;
-import com.datastax.driver.core.Statement;
-import com.datastax.driver.core.querybuilder.Delete;
-import com.datastax.driver.core.querybuilder.Insert;
-import com.datastax.driver.core.querybuilder.QueryBuilder;
-import com.datastax.driver.core.querybuilder.Update;
+import com.datastax.oss.driver.api.core.cql.SimpleStatementBuilder;
+import com.datastax.oss.driver.api.core.cql.Statement;
+import com.datastax.oss.driver.api.querybuilder.delete.Delete;
+import com.datastax.oss.driver.api.querybuilder.insert.Insert;
+import com.datastax.oss.driver.api.querybuilder.update.Update;
/**
* Utility class to associate {@link QueryOptions} and {@link WriteOptions} with QueryBuilder {@link Statement}s.
@@ -33,27 +32,6 @@ import com.datastax.driver.core.querybuilder.Update;
*/
public abstract class QueryOptionsUtil {
- /**
- * Add common {@link QueryOptions} to Cassandra {@link PreparedStatement}s.
- *
- * @param preparedStatement the Cassandra {@link PreparedStatement}, must not be {@literal null}.
- * @param queryOptions query options (e.g. consistency level) to add to the Cassandra {@link PreparedStatement}.
- */
- public static PreparedStatement addPreparedStatementOptions(PreparedStatement preparedStatement,
- QueryOptions queryOptions) {
-
- Assert.notNull(preparedStatement, "PreparedStatement must not be null");
-
- if (queryOptions.getConsistencyLevel() != null) {
- preparedStatement.setConsistencyLevel(queryOptions.getConsistencyLevel());
- }
- if (queryOptions.getRetryPolicy() != null) {
- preparedStatement.setRetryPolicy(queryOptions.getRetryPolicy());
- }
-
- return preparedStatement;
- }
-
/**
* Add common {@link QueryOptions} to all types of queries.
*
@@ -61,35 +39,68 @@ public abstract class QueryOptionsUtil {
* @param queryOptions query options (e.g. consistency level) to add to the CQL statement.
* @return the given {@link Statement}.
*/
- public static T addQueryOptions(T statement, QueryOptions queryOptions) {
+ public static > T addQueryOptions(T statement, QueryOptions queryOptions) {
Assert.notNull(statement, "Statement must not be null");
+ Statement> statementToUse = statement;
if (queryOptions.getConsistencyLevel() != null) {
- statement.setConsistencyLevel(queryOptions.getConsistencyLevel());
+ statementToUse = statementToUse.setConsistencyLevel(queryOptions.getConsistencyLevel());
}
- if (queryOptions.getRetryPolicy() != null) {
- statement.setRetryPolicy(queryOptions.getRetryPolicy());
- }
-
- if (queryOptions.getFetchSize() != null) {
- statement.setFetchSize(queryOptions.getFetchSize());
+ if (queryOptions.getPageSize() != null) {
+ statementToUse = statementToUse.setPageSize(queryOptions.getPageSize());
}
if (!queryOptions.getReadTimeout().isNegative()) {
- statement.setReadTimeoutMillis(Math.toIntExact(queryOptions.getReadTimeout().toMillis()));
+ statementToUse = statementToUse.setTimeout(queryOptions.getReadTimeout());
}
if (queryOptions.getTracing() != null) {
if (queryOptions.getTracing()) {
- statement.enableTracing();
+ statementToUse = statementToUse.setTracing(true);
} else {
- statement.disableTracing();
+ statementToUse = statementToUse.setTracing(false);
}
}
- return statement;
+ return (T) statementToUse;
+ }
+
+ /**
+ * Add common {@link QueryOptions} to all types of queries.
+ *
+ * @param statement a {@link SimpleStatementBuilder}, must not be {@literal null}.
+ * @param queryOptions query options (e.g. consistency level) to add to the CQL statement.
+ */
+ public static void addQueryOptions(SimpleStatementBuilder statementBuilder, QueryOptions queryOptions) {
+
+ Assert.notNull(statementBuilder, "SimpleStatementBuilder must not be null");
+
+ if (queryOptions.getConsistencyLevel() != null) {
+ statementBuilder.setConsistencyLevel(queryOptions.getConsistencyLevel());
+ }
+
+ // TODO:
+ /*if (queryOptions.getRetryPolicy() != null) {
+ statementToUse = statementToUse.setRetryPolicy(queryOptions.getRetryPolicy());
+ } */
+
+ if (queryOptions.getPageSize() != null) {
+ statementBuilder.setPageSize(queryOptions.getPageSize());
+ }
+
+ if (!queryOptions.getReadTimeout().isNegative()) {
+ statementBuilder.setTimeout(queryOptions.getReadTimeout());
+ }
+
+ if (queryOptions.getTracing() != null) {
+ if (queryOptions.getTracing()) {
+ statementBuilder.setTracing(true);
+ } else {
+ statementBuilder.setTracing(false);
+ }
+ }
}
/**
@@ -102,18 +113,19 @@ public abstract class QueryOptionsUtil {
public static Insert addWriteOptions(Insert insert, WriteOptions writeOptions) {
Assert.notNull(insert, "Insert must not be null");
+ Assert.notNull(writeOptions, "WriteOptions must not be null");
- addQueryOptions(insert, writeOptions);
+ Insert insertToUse = insert;
if (!writeOptions.getTtl().isNegative()) {
- insert.using(QueryBuilder.ttl(Math.toIntExact(writeOptions.getTtl().getSeconds())));
+ insertToUse = insertToUse.usingTtl(Math.toIntExact(writeOptions.getTtl().getSeconds()));
}
if (writeOptions.getTimestamp() != null) {
- insert.using(QueryBuilder.timestamp(writeOptions.getTimestamp()));
+ insertToUse = insertToUse.usingTimestamp(writeOptions.getTimestamp());
}
- return insert;
+ return insertToUse;
}
/**
@@ -127,12 +139,9 @@ public abstract class QueryOptionsUtil {
public static Delete addWriteOptions(Delete delete, WriteOptions writeOptions) {
Assert.notNull(delete, "Delete must not be null");
+ Assert.notNull(writeOptions, "WriteOptions must not be null");
- addQueryOptions(delete, writeOptions);
-
- if (writeOptions.getTimestamp() != null) {
- delete.using(QueryBuilder.timestamp(writeOptions.getTimestamp()));
- }
+ // TODO: Timestamp? TTL
return delete;
}
@@ -147,15 +156,9 @@ public abstract class QueryOptionsUtil {
public static Update addWriteOptions(Update update, WriteOptions writeOptions) {
Assert.notNull(update, "Update must not be null");
+ Assert.notNull(writeOptions, "WriteOptions must not be null");
- addQueryOptions(update, writeOptions);
-
- if (!writeOptions.getTtl().isNegative()) {
- update.using(QueryBuilder.ttl(Math.toIntExact(writeOptions.getTtl().getSeconds())));
- }
- if (writeOptions.getTimestamp() != null) {
- update.using(QueryBuilder.timestamp(writeOptions.getTimestamp()));
- }
+ // TODO: Timestamp, TTL?
return update;
}
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/WriteOptions.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/WriteOptions.java
index 29da10655..7c3143fc4 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/WriteOptions.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/WriteOptions.java
@@ -24,8 +24,8 @@ import java.util.concurrent.TimeUnit;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
-import com.datastax.driver.core.ConsistencyLevel;
-import com.datastax.driver.core.policies.RetryPolicy;
+import com.datastax.oss.driver.api.core.ConsistencyLevel;
+import com.datastax.oss.driver.api.core.retry.RetryPolicy;
/**
* Cassandra Write Options are an extension to {@link QueryOptions} for write operations. {@link WriteOptions}allow
@@ -157,17 +157,18 @@ public class WriteOptions extends QueryOptions {
* @see org.springframework.data.cassandra.core.cql.QueryOptions.QueryOptionsBuilder#consistencyLevel(com.datastax.driver.core.ConsistencyLevel)
*/
@Override
- public WriteOptionsBuilder consistencyLevel(com.datastax.driver.core.ConsistencyLevel consistencyLevel) {
+ public WriteOptionsBuilder consistencyLevel(ConsistencyLevel consistencyLevel) {
super.consistencyLevel(consistencyLevel);
return this;
}
/* (non-Javadoc)
- * @see org.springframework.data.cassandra.core.cql.QueryOptions.QueryOptionsBuilder#retryPolicy(org.springframework.data.cassandra.core.cql.RetryPolicy)
+ * @see org.springframework.data.cassandra.core.cql.QueryOptions.QueryOptionsBuilder#retryPolicy(com.datastax.oss.driver.api.core.retry.RetryPolicy)
*/
@Override
- public WriteOptionsBuilder retryPolicy(com.datastax.driver.core.policies.RetryPolicy driverRetryPolicy) {
+ @Deprecated
+ public WriteOptionsBuilder retryPolicy(RetryPolicy driverRetryPolicy) {
super.retryPolicy(driverRetryPolicy);
return this;
@@ -177,9 +178,20 @@ public class WriteOptions extends QueryOptions {
* @see org.springframework.data.cassandra.core.cql.QueryOptions.QueryOptionsBuilder#fetchSize(int)
*/
@Override
- public WriteOptionsBuilder fetchSize(int fetchSize) {
+ @Deprecated
+ public WriteOptionsBuilder fetchSize(int pageSize) {
- super.fetchSize(fetchSize);
+ super.fetchSize(pageSize);
+ return this;
+ }
+
+ /* (non-Javadoc)
+ * @see org.springframework.data.cassandra.core.cql.QueryOptions.QueryOptionsBuilder#pageSize(int)
+ */
+ @Override
+ public WriteOptionsBuilder pageSize(int pageSize) {
+
+ super.pageSize(pageSize);
return this;
}
@@ -187,6 +199,7 @@ public class WriteOptions extends QueryOptions {
* @see org.springframework.data.cassandra.core.cql.QueryOptions.QueryOptionsBuilder#readTimeout(long)
*/
@Override
+ @Deprecated
public WriteOptionsBuilder readTimeout(long readTimeout) {
super.readTimeout(readTimeout);
@@ -208,9 +221,9 @@ public class WriteOptions extends QueryOptions {
* @see org.springframework.data.cassandra.core.cql.QueryOptions.QueryOptionsBuilder#readTimeout(java.time.Duration)
*/
@Override
- public WriteOptionsBuilder readTimeout(Duration readTimeout) {
+ public WriteOptionsBuilder timeout(Duration timeout) {
- super.readTimeout(readTimeout);
+ super.timeout(timeout);
return this;
}
@@ -305,7 +318,7 @@ public class WriteOptions extends QueryOptions {
* @return a new {@link WriteOptions} with the configured values
*/
public WriteOptions build() {
- return new WriteOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.fetchSize, this.readTimeout,
+ return new WriteOptions(this.consistencyLevel, this.retryPolicy, this.tracing, this.pageSize, this.timeout,
this.ttl, this.timestamp);
}
}
diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/QueryOptionsUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/QueryOptionsUnitTests.java
index c0fb18d14..7d390e44a 100644
--- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/QueryOptionsUnitTests.java
+++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/QueryOptionsUnitTests.java
@@ -15,17 +15,13 @@
*/
package org.springframework.data.cassandra.core.cql;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.*;
import java.time.Duration;
import org.junit.Test;
-import com.datastax.driver.core.ConsistencyLevel;
-import com.datastax.driver.core.policies.DefaultRetryPolicy;
-import com.datastax.driver.core.policies.DowngradingConsistencyRetryPolicy;
-import com.datastax.driver.core.policies.FallthroughRetryPolicy;
-import com.datastax.driver.core.policies.LoggingRetryPolicy;
+import com.datastax.oss.driver.api.core.DefaultConsistencyLevel;
/**
* Unit tests for {@link QueryOptions}.
@@ -37,62 +33,30 @@ public class QueryOptionsUnitTests {
@Test // DATACASS-202
public void buildQueryOptions() {
- QueryOptions queryOptions = QueryOptions.builder()
- .consistencyLevel(ConsistencyLevel.ANY)
- .retryPolicy(FallthroughRetryPolicy.INSTANCE)
- .readTimeout(Duration.ofSeconds(1))
- .fetchSize(10)
- .tracing(true)
- .build();
+ QueryOptions queryOptions = QueryOptions.builder().consistencyLevel(DefaultConsistencyLevel.ANY)
+ .timeout(Duration.ofSeconds(1)).pageSize(10).tracing(true).build();
assertThat(queryOptions.getClass()).isEqualTo(QueryOptions.class);
- assertThat(queryOptions.getRetryPolicy()).isEqualTo(FallthroughRetryPolicy.INSTANCE);
- assertThat(queryOptions.getConsistencyLevel()).isEqualTo(ConsistencyLevel.ANY);
+ assertThat(queryOptions.getConsistencyLevel()).isEqualTo(DefaultConsistencyLevel.ANY);
assertThat(queryOptions.getReadTimeout()).isEqualTo(Duration.ofSeconds(1));
- assertThat(queryOptions.getFetchSize()).isEqualTo(10);
+ assertThat(queryOptions.getPageSize()).isEqualTo(10);
assertThat(queryOptions.getTracing()).isTrue();
}
- @Test // DATACASS-202
- public void buildQueryOptionsWithDriverRetryPolicy() {
-
- QueryOptions writeOptions = QueryOptions.builder()
- .retryPolicy(new LoggingRetryPolicy(DefaultRetryPolicy.INSTANCE))
- .build();
-
- assertThat(writeOptions.getRetryPolicy()).isInstanceOf(LoggingRetryPolicy.class);
- }
-
- @Test // DATACASS-202
- public void buildQueryOptionsWithRetryPolicy() {
-
- QueryOptions writeOptions = QueryOptions.builder()
- .retryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE)
- .build();
-
- assertThat(writeOptions.getRetryPolicy()).isEqualTo(DowngradingConsistencyRetryPolicy.INSTANCE);
- }
-
@Test // DATACASS-56
public void buildQueryOptionsMutate() {
- QueryOptions queryOptions = QueryOptions.builder()
- .consistencyLevel(ConsistencyLevel.ANY)
- .retryPolicy(FallthroughRetryPolicy.INSTANCE)
- .readTimeout(Duration.ofSeconds(1))
- .fetchSize(10)
- .tracing(true)
- .build();
+ QueryOptions queryOptions = QueryOptions.builder().consistencyLevel(DefaultConsistencyLevel.ANY)
+ .timeout(Duration.ofSeconds(1)).pageSize(10).tracing(true).build();
- QueryOptions mutated = queryOptions.mutate().readTimeout(Duration.ofSeconds(5)).build();
+ QueryOptions mutated = queryOptions.mutate().timeout(Duration.ofSeconds(5)).build();
assertThat(mutated).isNotNull();
assertThat(mutated).isNotSameAs(queryOptions);
assertThat(mutated.getClass()).isEqualTo(QueryOptions.class);
- assertThat(mutated.getRetryPolicy()).isEqualTo(FallthroughRetryPolicy.INSTANCE);
- assertThat(mutated.getConsistencyLevel()).isEqualTo(ConsistencyLevel.ANY);
+ assertThat(mutated.getConsistencyLevel()).isEqualTo(DefaultConsistencyLevel.ANY);
assertThat(mutated.getReadTimeout()).isEqualTo(Duration.ofSeconds(5));
- assertThat(mutated.getFetchSize()).isEqualTo(10);
+ assertThat(mutated.getPageSize()).isEqualTo(10);
assertThat(mutated.getTracing()).isTrue();
}
}
diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/QueryOptionsUtilUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/QueryOptionsUtilUnitTests.java
index 91f41226e..46e15ac14 100755
--- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/QueryOptionsUtilUnitTests.java
+++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/QueryOptionsUtilUnitTests.java
@@ -17,23 +17,16 @@ package org.springframework.data.cassandra.core.cql;
import static org.mockito.Mockito.*;
+import java.time.Duration;
import java.util.concurrent.TimeUnit;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
-import com.datastax.driver.core.ConsistencyLevel;
-import com.datastax.driver.core.PreparedStatement;
-import com.datastax.driver.core.Session;
-import com.datastax.driver.core.Statement;
-import com.datastax.driver.core.policies.FallthroughRetryPolicy;
-import com.datastax.driver.core.querybuilder.Delete;
-import com.datastax.driver.core.querybuilder.Insert;
-import com.datastax.driver.core.querybuilder.Update;
-import com.datastax.driver.core.querybuilder.Using;
+import com.datastax.oss.driver.api.core.DefaultConsistencyLevel;
+import com.datastax.oss.driver.api.core.cql.SimpleStatement;
/**
* Unit tests for {@link QueryOptionsUtil}.
@@ -42,65 +35,20 @@ import com.datastax.driver.core.querybuilder.Using;
* @author Mark Paluch
*/
@RunWith(MockitoJUnitRunner.class)
-@SuppressWarnings("unchecked")
public class QueryOptionsUtilUnitTests {
- @Mock Insert mockInsert;
- @Mock PreparedStatement mockPreparedStatement;
- @Mock Session mockSession;
- @Mock Statement mockStatement;
- @Mock Update mockUpdate;
- @Mock Delete mockDelete;
+ @Mock(stubOnly = true) SimpleStatement simpleStatement;
@Test // DATACASS-202
public void addPreparedStatementOptionsShouldAddDriverQueryOptions() {
QueryOptions queryOptions = QueryOptions.builder() //
- .consistencyLevel(ConsistencyLevel.EACH_QUORUM) //
- .retryPolicy(FallthroughRetryPolicy.INSTANCE) //
+ .consistencyLevel(DefaultConsistencyLevel.EACH_QUORUM) //
.build();
- QueryOptionsUtil.addPreparedStatementOptions(mockPreparedStatement, queryOptions);
+ QueryOptionsUtil.addQueryOptions(simpleStatement, queryOptions);
- verify(mockPreparedStatement).setConsistencyLevel(ConsistencyLevel.EACH_QUORUM);
- verify(mockPreparedStatement).setRetryPolicy(FallthroughRetryPolicy.INSTANCE);
- }
-
- @Test // DATACASS-202
- public void addPreparedStatementOptionsShouldAddOurQueryOptions() {
-
- QueryOptions queryOptions = QueryOptions.builder().retryPolicy(FallthroughRetryPolicy.INSTANCE)
- .consistencyLevel(ConsistencyLevel.LOCAL_QUORUM).build();
-
- QueryOptionsUtil.addPreparedStatementOptions(mockPreparedStatement, queryOptions);
-
- verify(mockPreparedStatement).setRetryPolicy(FallthroughRetryPolicy.INSTANCE);
- verify(mockPreparedStatement).setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM);
- }
-
- @Test // DATACASS-202
- public void addStatementQueryOptionsShouldAddDriverQueryOptions() {
-
- QueryOptions queryOptions = QueryOptions.builder().consistencyLevel(ConsistencyLevel.EACH_QUORUM) //
- .retryPolicy(FallthroughRetryPolicy.INSTANCE) //
- .build();
-
- QueryOptionsUtil.addQueryOptions(mockStatement, queryOptions);
-
- verify(mockStatement).setConsistencyLevel(ConsistencyLevel.EACH_QUORUM);
- verify(mockStatement).setRetryPolicy(FallthroughRetryPolicy.INSTANCE);
- }
-
- @Test // DATACASS-202
- public void addStatementQueryOptionsShouldAddOurQueryOptions() {
-
- QueryOptions queryOptions = QueryOptions.builder().retryPolicy(FallthroughRetryPolicy.INSTANCE)
- .consistencyLevel(ConsistencyLevel.LOCAL_QUORUM).build();
-
- QueryOptionsUtil.addQueryOptions(mockStatement, queryOptions);
-
- verify(mockStatement).setRetryPolicy(FallthroughRetryPolicy.INSTANCE);
- verify(mockStatement).setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM);
+ verify(simpleStatement).setConsistencyLevel(DefaultConsistencyLevel.EACH_QUORUM);
}
@Test // DATACASS-202
@@ -108,76 +56,24 @@ public class QueryOptionsUtilUnitTests {
QueryOptions queryOptions = QueryOptions.builder().build();
- QueryOptionsUtil.addQueryOptions(mockStatement, queryOptions);
+ QueryOptionsUtil.addQueryOptions(simpleStatement, queryOptions);
- verifyZeroInteractions(mockStatement);
+ verifyNoInteractions(simpleStatement);
}
@Test // DATACASS-202
public void addStatementQueryOptionsShouldAddGenericQueryOptions() {
QueryOptions queryOptions = QueryOptions.builder() //
- .fetchSize(10) //
+ .pageSize(10) //
.readTimeout(1, TimeUnit.MINUTES) //
.withTracing() //
.build();
- QueryOptionsUtil.addQueryOptions(mockStatement, queryOptions);
+ QueryOptionsUtil.addQueryOptions(simpleStatement, queryOptions);
- verify(mockStatement).setReadTimeoutMillis(60 * 1000);
- verify(mockStatement).setFetchSize(10);
- verify(mockStatement).enableTracing();
- }
-
- @Test // DATACASS-202
- public void addInsertWriteOptionsShouldAddDriverQueryOptions() {
-
- WriteOptions writeOptions = WriteOptions.builder() //
- .consistencyLevel(ConsistencyLevel.EACH_QUORUM) //
- .retryPolicy(FallthroughRetryPolicy.INSTANCE) //
- .readTimeout(10) //
- .ttl(10) //
- .build();
-
- QueryOptionsUtil.addWriteOptions(mockInsert, writeOptions);
-
- verify(mockInsert).setConsistencyLevel(ConsistencyLevel.EACH_QUORUM);
- verify(mockInsert).setRetryPolicy(FallthroughRetryPolicy.INSTANCE);
- verify(mockInsert).setReadTimeoutMillis(10);
- verify(mockInsert).using(Mockito.any(Using.class));
- }
-
- @Test // DATACASS-202
- public void addUpdateWriteOptionsShouldAddDriverQueryOptions() {
-
- WriteOptions writeOptions = WriteOptions.builder() //
- .consistencyLevel(ConsistencyLevel.EACH_QUORUM) //
- .retryPolicy(FallthroughRetryPolicy.INSTANCE) //
- .ttl(10) //
- .tracing(false).build();
-
- QueryOptionsUtil.addWriteOptions(mockUpdate, writeOptions);
-
- verify(mockUpdate).setConsistencyLevel(ConsistencyLevel.EACH_QUORUM);
- verify(mockUpdate).setRetryPolicy(FallthroughRetryPolicy.INSTANCE);
- verify(mockUpdate).using(Mockito.any(Using.class));
- verify(mockUpdate).disableTracing();
- }
-
- @Test // DATACASS-155
- public void addDeleteWriteOptionsShouldAddDriverQueryOptions() {
-
- WriteOptions writeOptions = WriteOptions.builder() //
- .consistencyLevel(ConsistencyLevel.EACH_QUORUM) //
- .retryPolicy(FallthroughRetryPolicy.INSTANCE) //
- .timestamp(42) //
- .tracing(false).build();
-
- QueryOptionsUtil.addWriteOptions(mockDelete, writeOptions);
-
- verify(mockDelete).setConsistencyLevel(ConsistencyLevel.EACH_QUORUM);
- verify(mockDelete).setRetryPolicy(FallthroughRetryPolicy.INSTANCE);
- verify(mockDelete).using(Mockito.any(Using.class));
- verify(mockDelete).disableTracing();
+ verify(simpleStatement).setTimeout(Duration.ofMinutes(1));
+ verify(simpleStatement).setPageSize(10);
+ verify(simpleStatement).setTracing(true);
}
}
diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/WriteOptionsUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/WriteOptionsUnitTests.java
index 8c8f67403..8e6b08e4a 100644
--- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/WriteOptionsUnitTests.java
+++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/WriteOptionsUnitTests.java
@@ -15,7 +15,7 @@
*/
package org.springframework.data.cassandra.core.cql;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.*;
import java.time.Duration;
import java.time.Instant;
@@ -24,9 +24,7 @@ import java.time.ZoneOffset;
import org.junit.Test;
-import com.datastax.driver.core.ConsistencyLevel;
-import com.datastax.driver.core.policies.DowngradingConsistencyRetryPolicy;
-import com.datastax.driver.core.policies.FallthroughRetryPolicy;
+import com.datastax.oss.driver.api.core.DefaultConsistencyLevel;
/**
* Unit tests for {@link WriteOptions}.
@@ -39,74 +37,55 @@ public class WriteOptionsUnitTests {
public void buildWriteOptions() {
WriteOptions writeOptions = WriteOptions.builder()
- .consistencyLevel(com.datastax.driver.core.ConsistencyLevel.ANY)
+ .consistencyLevel(DefaultConsistencyLevel.ANY)
.ttl(123)
.timestamp(1519000753)
- .retryPolicy(FallthroughRetryPolicy.INSTANCE)
.readTimeout(1)
- .fetchSize(10)
+ .pageSize(10)
.withTracing()
.build();
assertThat(writeOptions.getTtl()).isEqualTo(Duration.ofSeconds(123));
assertThat(writeOptions.getTimestamp()).isEqualTo(1519000753);
- assertThat(writeOptions.getRetryPolicy()).isEqualTo(FallthroughRetryPolicy.INSTANCE);
- assertThat(writeOptions.getConsistencyLevel()).isEqualTo(ConsistencyLevel.ANY);
+ assertThat(writeOptions.getConsistencyLevel()).isEqualTo(DefaultConsistencyLevel.ANY);
assertThat(writeOptions.getReadTimeout()).isEqualTo(Duration.ofMillis(1));
- assertThat(writeOptions.getFetchSize()).isEqualTo(10);
+ assertThat(writeOptions.getPageSize()).isEqualTo(10);
assertThat(writeOptions.getTracing()).isTrue();
}
@Test // DATACASS-202
public void buildReadTimeoutOptionsWriteOptions() {
- WriteOptions writeOptions = WriteOptions.builder().readTimeout(Duration.ofMinutes(1)).build();
+ WriteOptions writeOptions = WriteOptions.builder().timeout(Duration.ofMinutes(1)).build();
assertThat(writeOptions.getReadTimeout()).isEqualTo(Duration.ofSeconds(60));
- assertThat(writeOptions.getFetchSize()).isNull();
+ assertThat(writeOptions.getPageSize()).isNull();
assertThat(writeOptions.getTracing()).isNull();
}
- @Test // DATACASS-202
- public void buildQueryOptionsWithDriverRetryPolicy() {
-
- QueryOptions writeOptions = QueryOptions.builder().retryPolicy(FallthroughRetryPolicy.INSTANCE).build();
-
- assertThat(writeOptions.getRetryPolicy()).isEqualTo(FallthroughRetryPolicy.INSTANCE);
- }
-
- @Test // DATACASS-202
- public void buildQueryOptionsWithRetryPolicy() {
-
- QueryOptions writeOptions = QueryOptions.builder().retryPolicy(FallthroughRetryPolicy.INSTANCE).build();
-
- assertThat(writeOptions.getRetryPolicy()).isEqualTo(FallthroughRetryPolicy.INSTANCE);
- }
@Test // DATACASS-56
public void buildWriteOptionsMutate() {
Instant now = LocalDateTime.now().toInstant(ZoneOffset.UTC);
WriteOptions writeOptions = WriteOptions.builder()
- .consistencyLevel(com.datastax.driver.core.ConsistencyLevel.ANY)
+ .consistencyLevel(DefaultConsistencyLevel.ANY)
.ttl(123)
.timestamp(now)
- .retryPolicy(FallthroughRetryPolicy.INSTANCE)
.readTimeout(1)
- .fetchSize(10)
+ .pageSize(10)
.withTracing()
.build();
- WriteOptions mutated = writeOptions.mutate().retryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE).build();
+ WriteOptions mutated = writeOptions.mutate().timeout(Duration.ofMillis(100)).build();
assertThat(mutated).isNotNull();
assertThat(mutated).isNotSameAs(writeOptions);
assertThat(mutated.getTtl()).isEqualTo(Duration.ofSeconds(123));
assertThat(mutated.getTimestamp()).isEqualTo(now.toEpochMilli() * 1000);
- assertThat(mutated.getRetryPolicy()).isEqualTo(DowngradingConsistencyRetryPolicy.INSTANCE);
- assertThat(mutated.getConsistencyLevel()).isEqualTo(ConsistencyLevel.ANY);
- assertThat(mutated.getReadTimeout()).isEqualTo(Duration.ofMillis(1));
- assertThat(mutated.getFetchSize()).isEqualTo(10);
+ assertThat(mutated.getConsistencyLevel()).isEqualTo(DefaultConsistencyLevel.ANY);
+ assertThat(mutated.getReadTimeout()).isEqualTo(Duration.ofMillis(100));
+ assertThat(mutated.getPageSize()).isEqualTo(10);
assertThat(mutated.getTracing()).isTrue();
}
}