diff --git a/.travis.yml b/.travis.yml
index 80f96c29f..82c93f55c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,14 +10,17 @@ env:
- PROFILE=spring43
- PROFILE=spring43-next
- PROFILE=spring5-next
- - PROFILE=external-cassandra CASSANDRA_VERSION=2.2.6
- - PROFILE=external-cassandra CASSANDRA_VERSION=3.0.7
- - PROFILE=external-cassandra CASSANDRA_VERSION=3.2
+ - PROFILE=external-cassandra CASSANDRA_VERSION=2.2.8
+ - PROFILE=external-cassandra CASSANDRA_VERSION=3.0.9
+ - PROFILE=external-cassandra CASSANDRA_VERSION=3.1.1
+ - PROFILE=external-cassandra CASSANDRA_VERSION=3.2.1
- PROFILE=external-cassandra CASSANDRA_VERSION=3.3
- PROFILE=external-cassandra CASSANDRA_VERSION=3.4
- PROFILE=external-cassandra CASSANDRA_VERSION=3.5
- PROFILE=external-cassandra CASSANDRA_VERSION=3.6
- PROFILE=external-cassandra CASSANDRA_VERSION=3.7
+ - PROFILE=external-cassandra CASSANDRA_VERSION=3.8
+ - PROFILE=external-cassandra CASSANDRA_VERSION=3.9
cache:
directories:
- $HOME/.m2
diff --git a/pom.xml b/pom.xml
index 50c1a7ace..318a960e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,7 @@
19160
17001
17000
- 3.7
+ 3.9
3.1.0
spring-data-cassandra
1.0
diff --git a/spring-cql/src/test/java/org/springframework/cassandra/test/integration/EmbeddedCassandraServerHelper.java b/spring-cql/src/test/java/org/springframework/cassandra/test/integration/EmbeddedCassandraServerHelper.java
index 0924ac3b7..5f5eb4137 100644
--- a/spring-cql/src/test/java/org/springframework/cassandra/test/integration/EmbeddedCassandraServerHelper.java
+++ b/spring-cql/src/test/java/org/springframework/cassandra/test/integration/EmbeddedCassandraServerHelper.java
@@ -25,6 +25,7 @@ import java.io.OutputStream;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicReference;
+import org.apache.cassandra.config.Config;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.commitlog.CommitLog;
import org.apache.cassandra.io.util.FileUtils;
@@ -189,7 +190,7 @@ class EmbeddedCassandraServerHelper {
createCassandraDirectories();
CommitLog commitLog = CommitLog.instance;
- commitLog.getContext(); // wait for commit log allocator instantiation to avoid hanging on a race condition
+ commitLog.getCurrentPosition(); // wait for commit log allocator instantiation to avoid hanging on a race condition
commitLog.resetUnsafe(true); // cleanup screws w/ CommitLog, this brings it back to safe state
}
diff --git a/spring-cql/src/test/resources/embedded-cassandra.yaml b/spring-cql/src/test/resources/embedded-cassandra.yaml
index 8490167b0..0099bb071 100644
--- a/spring-cql/src/test/resources/embedded-cassandra.yaml
+++ b/spring-cql/src/test/resources/embedded-cassandra.yaml
@@ -1,4 +1,4 @@
-# Cassandra storage config YAML
+# Cassandra storage config YAML
# See http://wiki.apache.org/cassandra/StorageConfiguration for
# full explanations of configuration directives
@@ -18,7 +18,7 @@ cluster_name: 'Test Cluster'
#
# Specifying initial_token will override this setting.
#
-# If you already have a cluster with 1 token per node, and wish to migrate to
+# If you already have a cluster with 1 token per node, and wish to migrate to
# multiple tokens per node, see http://wiki.apache.org/cassandra/Operations
# num_tokens: 256
@@ -84,7 +84,7 @@ authorizer: org.apache.cassandra.auth.AllowAllAuthorizer
# own as long as it is on the classpath. Out of the box, Cassandra
# provides org.apache.cassandra.dht.{Murmur3Partitioner, RandomPartitioner
# ByteOrderedPartitioner, OrderPreservingPartitioner (deprecated)}.
-#
+#
# - RandomPartitioner distributes rows across the cluster evenly by md5.
# This is the default prior to 1.2 and is retained for compatibility.
# - Murmur3Partitioner is similar to RandomPartioner but uses Murmur3_128
@@ -102,6 +102,30 @@ authorizer: org.apache.cassandra.auth.AllowAllAuthorizer
# partitioners and token selection.
partitioner: org.apache.cassandra.dht.Murmur3Partitioner
+# Directories where Cassandra should store data on disk. Cassandra
+# will spread data evenly across them, subject to the granularity of
+# the configured compaction strategy.
+# If not set, the default directory is $CASSANDRA_HOME/data/data.
+# data_file_directories:
+# - /var/lib/cassandra/data
+
+# commit log. when running on magnetic HDD, this should be a
+# separate spindle than the data directories.
+# If not set, the default directory is $CASSANDRA_HOME/data/commitlog.
+# commitlog_directory: /var/lib/cassandra/commitlog
+
+# Enable / disable CDC functionality on a per-node basis. This modifies the logic used
+# for write path allocation rejection (standard: never reject. cdc: reject Mutation
+# containing a CDC-enabled table if at space limit in cdc_raw_directory).
+cdc_enabled: false
+
+# CommitLogSegments are moved to this directory on flush if cdc_enabled: true and the
+# segment contains mutations for a CDC-enabled table. This should be placed on a
+# separate spindle than the data directories. If not set, the default directory is
+# $CASSANDRA_HOME/data/cdc_raw.
+cdc_raw_directory: target/embeddedCassandra/data/cdc_raw
+
+
# Directories where Cassandra should store data on disk. Cassandra
# will spread data evenly across them, subject to the granularity of
# the configured compaction strategy.
@@ -176,7 +200,7 @@ row_cache_save_period: 0
# saved caches
saved_caches_directory: target/embeddedCassandra/saved_caches
-# commitlog_sync may be either "periodic" or "batch."
+# commitlog_sync may be either "periodic" or "batch."
# When in batch mode, Cassandra won't ack writes until the commit log
# has been fsynced to disk. It will wait up to
# commitlog_sync_batch_window_in_ms milliseconds for other writes, before
@@ -194,7 +218,7 @@ commitlog_sync_period_in_ms: 5000
# The size of the individual commitlog file segments. A commitlog
# segment may be archived, deleted, or recycled once all the data
# in it (potentially from each columnfamily in the system) has been
-# flushed to sstables.
+# flushed to sstables.
#
# The default size is 32, which is almost always fine, but if you are
# archiving commitlog segments (see commitlog_archiving.properties),
@@ -205,7 +229,7 @@ commitlog_segment_size_in_mb: 8
# any class that implements the SeedProvider interface and has a
# constructor that takes a Map of parameters will do.
seed_provider:
- # Addresses of hosts that are deemed contact points.
+ # Addresses of hosts that are deemed contact points.
# Cassandra nodes use this list of hosts to find each other and learn
# the topology of the ring. You must change this if you are running
# multiple nodes!
@@ -267,7 +291,7 @@ ssl_storage_port: ${build.cassandra.ssl_storage_port}
# Address to bind to and tell other Cassandra nodes to connect to. You
# _must_ change this if you want multiple nodes to be able to
# communicate!
-#
+#
# Leaving it blank leaves it up to InetAddress.getLocalHost(). This
# will always do the Right Thing _if_ the node is properly configured
# (hostname, name resolution, etc), and the Right Thing is to use the
@@ -302,7 +326,7 @@ start_rpc: false
# The address to bind the Thrift RPC service to -- clients connect
# here. Unlike ListenAddress above, you _can_ specify 0.0.0.0 here if
# you want Thrift to listen on all interfaces.
-#
+#
# Leaving this blank has the same effect it does for ListenAddress,
# (i.e. it will be based on the configured hostname of the node).
rpc_address: localhost
@@ -380,7 +404,7 @@ incremental_backups: false
snapshot_before_compaction: false
# Whether or not a snapshot is taken of the data before keyspace truncation
-# or dropping of column families. The STRONGLY advised default of true
+# or dropping of column families. The STRONGLY advised default of true
# should be used to provide data safety. If you set this flag to false, you will
# lose data on truncation or drop.
auto_snapshot: false
@@ -507,7 +531,7 @@ endpoint_snitch: SimpleSnitch
# controls how often to perform the more expensive part of host score
# calculation
-dynamic_snitch_update_interval_in_ms: 100
+dynamic_snitch_update_interval_in_ms: 100
# controls how often to reset all host scores, allowing a bad host to
# possibly recover
dynamic_snitch_reset_interval_in_ms: 600000
@@ -537,7 +561,7 @@ request_scheduler: org.apache.cassandra.scheduler.NoScheduler
# NoScheduler - Has no options
# RoundRobin
# - throttle_limit -- The throttle_limit is the number of in-flight
-# requests per client. Requests beyond
+# requests per client. Requests beyond
# that limit are queued up until
# running requests can complete.
# The value of 80 here is twice the number of
diff --git a/spring-data-cassandra/src/test/resources/embedded-cassandra.yaml b/spring-data-cassandra/src/test/resources/embedded-cassandra.yaml
index d3fb29908..0099bb071 100644
--- a/spring-data-cassandra/src/test/resources/embedded-cassandra.yaml
+++ b/spring-data-cassandra/src/test/resources/embedded-cassandra.yaml
@@ -102,6 +102,30 @@ authorizer: org.apache.cassandra.auth.AllowAllAuthorizer
# partitioners and token selection.
partitioner: org.apache.cassandra.dht.Murmur3Partitioner
+# Directories where Cassandra should store data on disk. Cassandra
+# will spread data evenly across them, subject to the granularity of
+# the configured compaction strategy.
+# If not set, the default directory is $CASSANDRA_HOME/data/data.
+# data_file_directories:
+# - /var/lib/cassandra/data
+
+# commit log. when running on magnetic HDD, this should be a
+# separate spindle than the data directories.
+# If not set, the default directory is $CASSANDRA_HOME/data/commitlog.
+# commitlog_directory: /var/lib/cassandra/commitlog
+
+# Enable / disable CDC functionality on a per-node basis. This modifies the logic used
+# for write path allocation rejection (standard: never reject. cdc: reject Mutation
+# containing a CDC-enabled table if at space limit in cdc_raw_directory).
+cdc_enabled: false
+
+# CommitLogSegments are moved to this directory on flush if cdc_enabled: true and the
+# segment contains mutations for a CDC-enabled table. This should be placed on a
+# separate spindle than the data directories. If not set, the default directory is
+# $CASSANDRA_HOME/data/cdc_raw.
+cdc_raw_directory: target/embeddedCassandra/data/cdc_raw
+
+
# Directories where Cassandra should store data on disk. Cassandra
# will spread data evenly across them, subject to the granularity of
# the configured compaction strategy.