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.