Skip to content

Commit 6c6bc4a

Browse files
committed
JAVA-1776: Use concurrency annotations
1 parent f0bf713 commit 6c6bc4a

293 files changed

Lines changed: 635 additions & 12 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

changelog/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
### 4.0.0-alpha4 (in progress)
66

7+
- [improvement] JAVA-1776: Use concurrency annotations
78
- [improvement] JAVA-1799: Use CqlIdentifier for simple statement named values
89
- [new feature] JAVA-1515: Add query builder
910
- [improvement] JAVA-1773: Make DriverConfigProfile enumerable

core/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@
8383
<groupId>org.hdrhistogram</groupId>
8484
<artifactId>HdrHistogram</artifactId>
8585
</dependency>
86+
<dependency>
87+
<groupId>net.jcip</groupId>
88+
<artifactId>jcip-annotations</artifactId>
89+
<optional>true</optional>
90+
</dependency>
8691
<dependency>
8792
<groupId>ch.qos.logback</groupId>
8893
<artifactId>logback-classic</artifactId>

core/src/main/java/com/datastax/oss/driver/api/core/CassandraVersion.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.Objects;
2222
import java.util.regex.Matcher;
2323
import java.util.regex.Pattern;
24+
import net.jcip.annotations.Immutable;
2425

2526
/**
2627
* The version of a Cassandra release.
@@ -32,6 +33,7 @@
3233
* versions that don't have one, and labels are sorted alphabetically if necessary. Build metadata
3334
* are ignored for sorting versions.
3435
*/
36+
@Immutable
3537
public class CassandraVersion implements Comparable<CassandraVersion> {
3638

3739
private static final String VERSION_REGEXP =

core/src/main/java/com/datastax/oss/driver/api/core/CqlIdentifier.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.io.IOException;
2121
import java.io.ObjectInputStream;
2222
import java.io.Serializable;
23+
import net.jcip.annotations.Immutable;
2324

2425
/**
2526
* The identifier of CQL element (keyspace, table, column, etc).
@@ -54,6 +55,7 @@
5455
*
5556
* <p>There is no internal caching; if you reuse the same identifiers often,
5657
*/
58+
@Immutable
5759
public class CqlIdentifier implements Serializable {
5860

5961
private static final long serialVersionUID = 1;

core/src/main/java/com/datastax/oss/driver/api/core/CqlSessionBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
package com.datastax.oss.driver.api.core;
1717

1818
import com.datastax.oss.driver.api.core.session.SessionBuilder;
19+
import net.jcip.annotations.NotThreadSafe;
1920

2021
/** Helper class to build a {@link CqlSession} instance. */
22+
@NotThreadSafe
2123
public class CqlSessionBuilder extends SessionBuilder<CqlSessionBuilder, CqlSession> {
2224

2325
@Override

core/src/main/java/com/datastax/oss/driver/api/core/addresstranslation/PassThroughAddressTranslator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@
1717

1818
import com.datastax.oss.driver.api.core.context.DriverContext;
1919
import java.net.InetSocketAddress;
20+
import net.jcip.annotations.ThreadSafe;
2021

2122
/** An address translator that always returns the same address unchanged. */
23+
@ThreadSafe
2224
public class PassThroughAddressTranslator implements AddressTranslator {
2325

2426
public PassThroughAddressTranslator(@SuppressWarnings("unused") DriverContext context) {

core/src/main/java/com/datastax/oss/driver/api/core/auth/PlainTextAuthProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.datastax.oss.driver.shaded.guava.common.base.Charsets;
2222
import java.net.SocketAddress;
2323
import java.nio.ByteBuffer;
24+
import net.jcip.annotations.ThreadSafe;
2425

2526
/**
2627
* A simple authentication provider that supports SASL authentication using the PLAIN mechanism for
@@ -41,6 +42,7 @@
4142
*
4243
* See the {@code reference.conf} file included with the driver for more information.
4344
*/
45+
@ThreadSafe
4446
public class PlainTextAuthProvider implements AuthProvider {
4547

4648
private final DriverConfigProfile config;

core/src/main/java/com/datastax/oss/driver/api/core/connection/ExponentialReconnectionPolicy.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@
2020
import com.datastax.oss.driver.api.core.context.DriverContext;
2121
import com.datastax.oss.driver.shaded.guava.common.base.Preconditions;
2222
import java.time.Duration;
23+
import net.jcip.annotations.ThreadSafe;
2324

2425
/**
2526
* A reconnection policy that waits exponentially longer between each reconnection attempt (but
2627
* keeps a constant delay once a maximum delay is reached).
2728
*/
29+
@ThreadSafe
2830
public class ExponentialReconnectionPolicy implements ReconnectionPolicy {
2931

3032
private final long baseDelayMs;

core/src/main/java/com/datastax/oss/driver/api/core/cql/BatchStatementBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
import com.datastax.oss.driver.shaded.guava.common.collect.ImmutableList;
2121
import com.datastax.oss.driver.shaded.guava.common.collect.Iterables;
2222
import java.util.Arrays;
23+
import net.jcip.annotations.NotThreadSafe;
2324

25+
@NotThreadSafe
2426
public class BatchStatementBuilder extends StatementBuilder<BatchStatementBuilder, BatchStatement> {
2527

2628
private BatchType batchType;

core/src/main/java/com/datastax/oss/driver/api/core/cql/BoundStatementBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import com.datastax.oss.driver.internal.core.cql.DefaultBoundStatement;
2323
import com.datastax.oss.protocol.internal.ProtocolConstants;
2424
import java.nio.ByteBuffer;
25+
import net.jcip.annotations.NotThreadSafe;
2526

27+
@NotThreadSafe
2628
public class BoundStatementBuilder extends StatementBuilder<BoundStatementBuilder, BoundStatement>
2729
implements Bindable<BoundStatementBuilder> {
2830

0 commit comments

Comments
 (0)