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 0e1783d

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 0e1783d

File tree

18 files changed

+81
-67
lines changed

18 files changed

+81
-67
lines changed

‎pom.xml‎

Lines changed: 4 additions & 12 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

@@ -192,14 +192,6 @@
192192
<version>3.1</version>
193193
<scope>test</scope>
194194
</dependency>
195-
196-
<dependency>
197-
<groupId>org.hectorclient</groupId>
198-
<artifactId>hector-core</artifactId>
199-
<version>1.1-4</version>
200-
<scope>test</scope>
201-
</dependency>
202-
203195
</dependencies>
204196
</dependencyManagement>
205197

‎spring-cql/pom.xml‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@
101101
<artifactId>commons-lang3</artifactId>
102102
<scope>test</scope>
103103
</dependency>
104+
<dependency>
105+
<groupId>ch.qos.logback</groupId>
106+
<artifactId>logback-core</artifactId>
107+
<version>1.1.7</version>
108+
<scope>test</scope>
109+
</dependency>
104110
</dependencies>
105111

106112
<build>

‎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/integration/core/template/async/Book.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public static final String uuid() {
99
}
1010

1111
public static Book random() {
12-
return new Book(uuid(), uuid());
12+
return new Book("title" + uuid(),"isbn" + uuid());
1313
}
1414

1515
public Book() {}

0 commit comments

Comments
(0)

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