Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7e9d33a

Browse files
committed
DATACASS-169: Deal with breaking changes introduced in cassandra-driver-dse 2.1.0 & later
This commit adds support for Cassandra 3.x with the latest Datastax Driver 3.0.0. This migration follows the guidelines listed at https://datastax.github.io/java-driver/upgrade_guide/.
1 parent b3289af commit 7e9d33a

File tree

16 files changed

+78
-56
lines changed

16 files changed

+78
-56
lines changed

‎pom.xml‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@
2929
<project.type>multi</project.type>
3030
<dist.id>spring-data-cassandra</dist.id>
3131
<springdata.commons>1.13.0.BUILD-SNAPSHOT</springdata.commons>
32-
<cassandra-unit.version>2.1.9.2</cassandra-unit.version>
32+
<cassandra-unit.version>3.0.0.1</cassandra-unit.version>
3333
<el.version>1.0</el.version>
3434
<failsafe.version>2.16</failsafe.version>
3535
<jamm.version>0.3.1</jamm.version>
36-
<cassandra.version>2.1.11</cassandra.version>
37-
<cassandra-driver-dse.version>2.1.7.1</cassandra-driver-dse.version>
36+
<cassandra.version>3.0.0</cassandra.version>
37+
<cassandra-driver-dse.version>3.0.0-rc1</cassandra-driver-dse.version>
3838
</properties>
3939

4040
<developers>
@@ -126,7 +126,7 @@
126126
<dependency>
127127
<groupId>org.xerial.snappy</groupId>
128128
<artifactId>snappy-java</artifactId>
129-
<version>1.1.0.1</version>
129+
<version>1.1.2.1</version>
130130
<scope>test</scope>
131131
</dependency>
132132

@@ -158,8 +158,8 @@
158158
<artifactId>cassandra-driver-core</artifactId>
159159
</exclusion>
160160
<exclusion>
161-
<artifactId>slf4j-log4j12</artifactId>
162-
<groupId>org.slf4j</groupId>
161+
<artifactId>logback-core</artifactId>
162+
<groupId>ch.qos.logback</groupId>
163163
</exclusion>
164164
</exclusions>
165165
<scope>test</scope>

‎spring-cql/pom.xml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@
8282
<scope>test</scope>
8383
<exclusions>
8484
<exclusion>
85-
<artifactId>slf4j-log4j12</artifactId>
86-
<groupId>org.slf4j</groupId>
85+
<artifactId>logback-core</artifactId>
86+
<groupId>ch.qos.logback</groupId>
8787
</exclusion>
8888
<exclusion>
8989
<artifactId>guava</artifactId>

‎spring-cql/src/main/java/org/springframework/cassandra/core/CqlTemplate.java‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import org.springframework.util.Assert;
5656

5757
import com.datastax.driver.core.BoundStatement;
58+
import com.datastax.driver.core.CodecRegistry;
5859
import com.datastax.driver.core.ColumnDefinitions;
5960
import com.datastax.driver.core.ColumnDefinitions.Definition;
6061
import com.datastax.driver.core.Host;
@@ -571,7 +572,7 @@ protected Object firstColumnToObject(Row row) {
571572
if (cols.size() == 0) {
572573
return null;
573574
}
574-
return cols.getType(0).deserialize(row.getBytesUnsafe(0), ProtocolVersion.NEWEST_SUPPORTED);
575+
return CodecRegistry.DEFAULT_INSTANCE.codecFor(cols.getType(0)).deserialize(row.getBytesUnsafe(0), ProtocolVersion.NEWEST_SUPPORTED);
575576
}
576577

577578
/**
@@ -588,7 +589,7 @@ protected Map<String, Object> toMap(Row row) {
588589

589590
for (Definition def : cols.asList()) {
590591
String name = def.getName();
591-
map.put(name, def.getType().deserialize(row.getBytesUnsafe(name), ProtocolVersion.NEWEST_SUPPORTED));
592+
map.put(name, CodecRegistry.DEFAULT_INSTANCE.codecFor(def.getType()).deserialize(row.getBytesUnsafe(name), ProtocolVersion.NEWEST_SUPPORTED));
592593
}
593594

594595
return map;

‎spring-cql/src/main/java/org/springframework/cassandra/core/converter/RowToListConverter.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import org.springframework.core.convert.converter.Converter;
77

8+
import com.datastax.driver.core.CodecRegistry;
89
import com.datastax.driver.core.ColumnDefinitions;
910
import com.datastax.driver.core.ProtocolVersion;
1011
import com.datastax.driver.core.Row;
@@ -24,7 +25,7 @@ public List<Object> convert(Row row) {
2425

2526
for (Definition def : cols.asList()) {
2627
String name = def.getName();
27-
list.add(row.isNull(name) ? null : def.getType().deserialize(
28+
list.add(row.isNull(name) ? null : CodecRegistry.DEFAULT_INSTANCE.codecFor(def.getType()).deserialize(
2829
row.getBytesUnsafe(name), ProtocolVersion.NEWEST_SUPPORTED));
2930
}
3031

‎spring-cql/src/main/java/org/springframework/cassandra/core/converter/RowToMapConverter.java‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import org.springframework.core.convert.converter.Converter;
77

8+
import com.datastax.driver.core.CodecRegistry;
89
import com.datastax.driver.core.ColumnDefinitions;
910
import com.datastax.driver.core.ColumnDefinitions.Definition;
1011
import com.datastax.driver.core.ProtocolVersion;
@@ -27,8 +28,8 @@ public Map<String, Object> convert(Row row) {
2728
String name = def.getName();
2829
map.put(
2930
name,
30-
row.isNull(name) ? null : def.getType().deserialize(row.getBytesUnsafe(name),
31-
ProtocolVersion.NEWEST_SUPPORTED));
31+
row.isNull(name) ? null : CodecRegistry.DEFAULT_INSTANCE.codecFor(def.getType())
32+
.deserialize(row.getBytesUnsafe(name), ProtocolVersion.NEWEST_SUPPORTED));
3233
}
3334

3435
return map;

‎spring-cql/src/test/java/org/springframework/cassandra/test/integration/config/xml/TestHostStateListener.java‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.slf4j.Logger;
1919
import org.slf4j.LoggerFactory;
2020

21+
import com.datastax.driver.core.Cluster;
2122
import com.datastax.driver.core.Host;
2223
import com.datastax.driver.core.Host.StateListener;
2324

@@ -49,8 +50,13 @@ public void onRemove(Host host) {
4950
}
5051

5152
@Override
52-
public void onSuspected(Host host) {
53-
log.info("Host Suspected: " + host.getAddress());
53+
public void onRegister(Cluster cluster) {
54+
log.info("Cluster registered: " + cluster.getClusterName());
55+
}
56+
57+
@Override
58+
public void onUnregister(Cluster cluster) {
59+
log.info("Cluster unregistered: " + cluster.getClusterName());
5460
}
5561

5662
}

‎spring-cql/src/test/java/org/springframework/cassandra/test/integration/config/xml/TestLatencyTracker.java‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.slf4j.Logger;
1919
import org.slf4j.LoggerFactory;
2020

21+
import com.datastax.driver.core.Cluster;
2122
import com.datastax.driver.core.Host;
2223
import com.datastax.driver.core.LatencyTracker;
2324
import com.datastax.driver.core.Statement;
@@ -34,5 +35,13 @@ public class TestLatencyTracker implements LatencyTracker {
3435
public void update(Host host, Statement statement, Exception exception, long newLatencyNanos) {
3536
LOG.info("Latency Tracker: " + host.getAddress() + ", " + newLatencyNanos + " nanoseconds.");
3637
}
38+
39+
@Override
40+
public void onRegister(Cluster cluster) {
41+
}
42+
43+
@Override
44+
public void onUnregister(Cluster cluster) {
45+
}
3746

3847
}

‎spring-cql/src/test/java/org/springframework/cassandra/test/integration/core/cql/generator/CqlIndexSpecificationAssertions.java‎

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,28 @@
2020

2121
import org.springframework.cassandra.core.keyspace.IndexDescriptor;
2222

23-
import com.datastax.driver.core.ColumnMetadata.IndexMetadata;
23+
import com.datastax.driver.core.IndexMetadata;
2424
import com.datastax.driver.core.Session;
25+
import com.datastax.driver.core.TableMetadata;
2526

2627
public class CqlIndexSpecificationAssertions {
2728

2829
public static double DELTA = 1e-6; // delta for comparisons of doubles
2930

3031
public static void assertIndex(IndexDescriptor expected, String keyspace, Session session) {
31-
IndexMetadata imd = session.getCluster().getMetadata().getKeyspace(keyspace.toLowerCase())
32-
.getTable(expected.getTableName().toCql()).getColumn(expected.getColumnName().toCql()).getIndex();
32+
TableMetadata tableMetadata = session.getCluster().getMetadata().getKeyspace(keyspace.toLowerCase())
33+
.getTable(expected.getTableName().toCql());
34+
35+
IndexMetadata imd = tableMetadata.getIndex(expected.getName().toCql());
3336

34-
assertEquals(expected.getName(), imd.getName());
37+
assertEquals(expected.getName(), imd == null ? null : imd.getName());
3538
}
3639

3740
public static void assertNoIndex(IndexDescriptor expected, String keyspace, Session session) {
38-
IndexMetadata imd = session.getCluster().getMetadata().getKeyspace(keyspace.toLowerCase())
39-
.getTable(expected.getTableName().toCql()).getColumn(expected.getColumnName().toCql()).getIndex();
41+
TableMetadata tableMetadata = session.getCluster().getMetadata().getKeyspace(keyspace.toLowerCase())
42+
.getTable(expected.getTableName().toCql());
43+
44+
IndexMetadata imd = tableMetadata.getIndex(expected.getName().toCql());
4045

4146
assertNull(imd);
4247
}

‎spring-cql/src/test/java/org/springframework/cassandra/test/integration/core/cql/generator/CqlTableSpecificationAssertions.java‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import com.datastax.driver.core.ColumnMetadata;
3333
import com.datastax.driver.core.Session;
3434
import com.datastax.driver.core.TableMetadata;
35-
import com.datastax.driver.core.TableMetadata.Options;
35+
import com.datastax.driver.core.TableOptionsMetadata;
3636

3737
public class CqlTableSpecificationAssertions {
3838

@@ -66,7 +66,7 @@ public static void assertPrimaryKeyColumns(TableDescriptor expected, TableMetada
6666
assertColumns(expected.getPrimaryKeyColumns(), actual.getPrimaryKey());
6767
}
6868

69-
public static void assertOptions(Map<String, Object> expected, Options actual) {
69+
public static void assertOptions(Map<String, Object> expected, TableOptionsMetadata actual) {
7070

7171
for (String key : expected.keySet()) {
7272

@@ -139,7 +139,7 @@ public static TableOption getTableOptionFor(String key) {
139139
}
140140

141141
@SuppressWarnings("unchecked")
142-
public static <T> T getOptionFor(TableOption option, Class<?> type, Options options) {
142+
public static <T> T getOptionFor(TableOption option, Class<?> type, TableOptionsMetadata options) {
143143
switch (option) {
144144
case BLOOM_FILTER_FP_CHANCE:
145145
return (T) (Double) options.getBloomFilterFalsePositiveChance();

‎spring-cql/src/test/java/org/springframework/cassandra/test/unit/config/CassandraCqlClusterFactoryBeanTests.java‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@ public void tearDown() throws Exception {
4747
@Test
4848
public void configuredProtocolVersionShouldBeSet() throws Exception {
4949

50-
cassandraCqlClusterFactoryBean.setProtocolVersion(ProtocolVersion.V2);
50+
cassandraCqlClusterFactoryBean.setProtocolVersion(ProtocolVersion.V4);
5151
cassandraCqlClusterFactoryBean.setPort(CASSANDRA_NATIVE_PORT);
5252
cassandraCqlClusterFactoryBean.afterPropertiesSet();
5353

54-
assertEquals(ProtocolVersion.V2, getProtocolVersionEnum(cassandraCqlClusterFactoryBean));
54+
assertEquals(ProtocolVersion.V4, getProtocolVersionEnum(cassandraCqlClusterFactoryBean));
5555
}
5656

5757
@Test
@@ -68,6 +68,6 @@ private ProtocolVersion getProtocolVersionEnum(CassandraCqlClusterFactoryBean ca
6868

6969
// initialize connection factory
7070
cassandraCqlClusterFactoryBean.getObject().init();
71-
return cassandraCqlClusterFactoryBean.getObject().getConfiguration().getProtocolOptions().getProtocolVersionEnum();
71+
return cassandraCqlClusterFactoryBean.getObject().getConfiguration().getProtocolOptions().getProtocolVersion();
7272
}
7373
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /