Skip to content

Commit b6445b6

Browse files
authored
added thread safety annotations (#445)
1 parent 0b8c09a commit b6445b6

20 files changed

+51
-0
lines changed

pom.xml

+6
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,12 @@
251251
<artifactId>jackson-dataformat-velocypack</artifactId>
252252
<optional>true</optional>
253253
</dependency>
254+
<dependency>
255+
<groupId>com.google.code.findbugs</groupId>
256+
<artifactId>jsr305</artifactId>
257+
<version>3.0.2</version>
258+
<scope>provided</scope>
259+
</dependency>
254260
<dependency>
255261
<groupId>ch.qos.logback</groupId>
256262
<artifactId>logback-classic</artifactId>

src/main/java/com/arangodb/ArangoCollection.java

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.arangodb.entity.*;
2424
import com.arangodb.model.*;
2525

26+
import javax.annotation.concurrent.ThreadSafe;
2627
import java.util.Collection;
2728

2829
/**
@@ -35,6 +36,7 @@
3536
* @see <a href="https://www.arangodb.com/docs/stable/http/collection.html">Documents API Documentation</a>
3637
*/
3738
@SuppressWarnings("UnusedReturnValue")
39+
@ThreadSafe
3840
public interface ArangoCollection extends ArangoSerializationAccessor {
3941

4042
/**

src/main/java/com/arangodb/ArangoDB.java

+2
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
import org.slf4j.Logger;
6262
import org.slf4j.LoggerFactory;
6363

64+
import javax.annotation.concurrent.ThreadSafe;
6465
import javax.net.ssl.HostnameVerifier;
6566
import javax.net.ssl.SSLContext;
6667
import java.io.InputStream;
@@ -85,6 +86,7 @@
8586
* @author Michele Rastelli
8687
*/
8788
@SuppressWarnings("UnusedReturnValue")
89+
@ThreadSafe
8890
public interface ArangoDB extends ArangoSerializationAccessor {
8991

9092
/**

src/main/java/com/arangodb/ArangoDatabase.java

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.arangodb.model.arangosearch.AnalyzerDeleteOptions;
2828
import com.arangodb.model.arangosearch.ArangoSearchCreateOptions;
2929

30+
import javax.annotation.concurrent.ThreadSafe;
3031
import java.util.Collection;
3132
import java.util.Map;
3233

@@ -39,6 +40,7 @@
3940
* @see <a href="https://www.arangodb.com/docs/stable/http/aql-query.html">Query API Documentation</a>
4041
*/
4142
@SuppressWarnings("UnusedReturnValue")
43+
@ThreadSafe
4244
public interface ArangoDatabase extends ArangoSerializationAccessor {
4345

4446
/**

src/main/java/com/arangodb/ArangoEdgeCollection.java

+3
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,16 @@
2424
import com.arangodb.entity.EdgeUpdateEntity;
2525
import com.arangodb.model.*;
2626

27+
import javax.annotation.concurrent.ThreadSafe;
28+
2729
/**
2830
* Interface for operations on ArangoDB edge collection level.
2931
*
3032
* @author Mark Vollmary
3133
* @see <a href="https://www.arangodb.com/docs/stable/http/gharial-edges.html">API Documentation</a>
3234
*/
3335
@SuppressWarnings("UnusedReturnValue")
36+
@ThreadSafe
3437
public interface ArangoEdgeCollection extends ArangoSerializationAccessor {
3538

3639
/**

src/main/java/com/arangodb/ArangoGraph.java

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.arangodb.model.GraphCreateOptions;
2626
import com.arangodb.model.VertexCollectionCreateOptions;
2727

28+
import javax.annotation.concurrent.ThreadSafe;
2829
import java.util.Collection;
2930

3031
/**
@@ -33,6 +34,7 @@
3334
* @author Mark Vollmary
3435
* @see <a href="https://www.arangodb.com/docs/stable/http/gharial.html">API Documentation</a>
3536
*/
37+
@ThreadSafe
3638
public interface ArangoGraph extends ArangoSerializationAccessor {
3739

3840
/**

src/main/java/com/arangodb/ArangoMetrics.java

+3
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,15 @@
2020

2121
package com.arangodb;
2222

23+
import javax.annotation.concurrent.ThreadSafe;
24+
2325
/**
2426
* Interface for accessing metrics.
2527
*
2628
* @author Michele Rastelli
2729
* @since ArangoDB 3.9
2830
*/
31+
@ThreadSafe
2932
public interface ArangoMetrics {
3033
/**
3134
* @return queue time metrics

src/main/java/com/arangodb/ArangoSearch.java

+3
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,16 @@
2525
import com.arangodb.model.arangosearch.ArangoSearchCreateOptions;
2626
import com.arangodb.model.arangosearch.ArangoSearchPropertiesOptions;
2727

28+
import javax.annotation.concurrent.ThreadSafe;
29+
2830
/**
2931
* Interface for operations on ArangoDB view level for ArangoSearch views.
3032
*
3133
* @author Mark Vollmary
3234
* @see <a href="https://www.arangodb.com/docs/stable/http/views.html">View API Documentation</a>
3335
* @since ArangoDB 3.4.0
3436
*/
37+
@ThreadSafe
3538
public interface ArangoSearch extends ArangoView {
3639

3740
/**

src/main/java/com/arangodb/ArangoSerializationAccessor.java

+3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,12 @@
2323
import com.arangodb.internal.util.ArangoSerializationFactory.Serializer;
2424
import com.arangodb.util.ArangoSerialization;
2525

26+
import javax.annotation.concurrent.ThreadSafe;
27+
2628
/**
2729
* @author Mark Vollmary
2830
*/
31+
@ThreadSafe
2932
public interface ArangoSerializationAccessor {
3033

3134
/**

src/main/java/com/arangodb/ArangoVertexCollection.java

+3
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,15 @@
2424
import com.arangodb.entity.VertexUpdateEntity;
2525
import com.arangodb.model.*;
2626

27+
import javax.annotation.concurrent.ThreadSafe;
28+
2729
/**
2830
* Interface for operations on ArangoDB vertex collection level.
2931
*
3032
* @author Mark Vollmary
3133
* @see <a href="https://www.arangodb.com/docs/stable/http/gharial-vertices.html">API Documentation</a>
3234
*/
35+
@ThreadSafe
3336
public interface ArangoVertexCollection extends ArangoSerializationAccessor {
3437

3538
/**

src/main/java/com/arangodb/ArangoView.java

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
import com.arangodb.entity.ViewEntity;
2424

25+
import javax.annotation.concurrent.ThreadSafe;
26+
2527
/**
2628
* Interface for operations on ArangoDB view level.
2729
*
@@ -30,6 +32,7 @@
3032
* @since ArangoDB 3.4.0
3133
*/
3234
@SuppressWarnings("UnusedReturnValue")
35+
@ThreadSafe
3336
public interface ArangoView extends ArangoSerializationAccessor {
3437

3538
/**

src/main/java/com/arangodb/QueueTimeMetrics.java

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
import com.arangodb.model.QueueTimeSample;
2424

25+
import javax.annotation.concurrent.ThreadSafe;
26+
2527
/**
2628
* Interface for accessing queue time latency metrics, reported by the "X-Arango-Queue-Time-Seconds" response header.
2729
* This header contains the most recent request (de)queuing time (in seconds) as tracked by the server’s scheduler.
@@ -30,6 +32,7 @@
3032
* @see <a href="https://www.arangodb.com/docs/stable/http/general.html#overload-control">API Documentation</a>
3133
* @since ArangoDB 3.9
3234
*/
35+
@ThreadSafe
3336
public interface QueueTimeMetrics {
3437

3538
/**

src/main/java/com/arangodb/async/ArangoCollectionAsync.java

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.arangodb.entity.*;
2626
import com.arangodb.model.*;
2727

28+
import javax.annotation.concurrent.ThreadSafe;
2829
import java.util.Collection;
2930
import java.util.concurrent.CompletableFuture;
3031

@@ -36,6 +37,7 @@
3637
* @see <a href="https://www.arangodb.com/docs/stable/http/collection.html">Documents API Documentation</a>
3738
*/
3839
@SuppressWarnings("unused")
40+
@ThreadSafe
3941
public interface ArangoCollectionAsync extends ArangoSerializationAccessor {
4042

4143
/**

src/main/java/com/arangodb/async/ArangoDBAsync.java

+2
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import org.slf4j.Logger;
5151
import org.slf4j.LoggerFactory;
5252

53+
import javax.annotation.concurrent.ThreadSafe;
5354
import javax.net.ssl.SSLContext;
5455
import java.io.InputStream;
5556
import java.lang.annotation.Annotation;
@@ -70,6 +71,7 @@
7071
*
7172
* @author Mark Vollmary
7273
*/
74+
@ThreadSafe
7375
public interface ArangoDBAsync extends ArangoSerializationAccessor {
7476

7577
void shutdown() throws ArangoDBException;

src/main/java/com/arangodb/async/ArangoDatabaseAsync.java

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.arangodb.model.arangosearch.AnalyzerDeleteOptions;
3131
import com.arangodb.model.arangosearch.ArangoSearchCreateOptions;
3232

33+
import javax.annotation.concurrent.ThreadSafe;
3334
import java.util.Collection;
3435
import java.util.Map;
3536
import java.util.concurrent.CompletableFuture;
@@ -42,6 +43,7 @@
4243
* @see <a href="https://www.arangodb.com/docs/stable/http/aql-query.html">Query API Documentation</a>
4344
*/
4445
@SuppressWarnings("unused")
46+
@ThreadSafe
4547
public interface ArangoDatabaseAsync extends ArangoSerializationAccessor {
4648

4749
/**

src/main/java/com/arangodb/async/ArangoEdgeCollectionAsync.java

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.arangodb.entity.EdgeUpdateEntity;
2626
import com.arangodb.model.*;
2727

28+
import javax.annotation.concurrent.ThreadSafe;
2829
import java.util.concurrent.CompletableFuture;
2930

3031
/**
@@ -34,6 +35,7 @@
3435
* @see <a href="https://www.arangodb.com/docs/stable/http/gharial-edges.html">API Documentation</a>
3536
*/
3637
@SuppressWarnings("unused")
38+
@ThreadSafe
3739
public interface ArangoEdgeCollectionAsync extends ArangoSerializationAccessor {
3840

3941
/**

src/main/java/com/arangodb/async/ArangoGraphAsync.java

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.arangodb.model.GraphCreateOptions;
2727
import com.arangodb.model.VertexCollectionCreateOptions;
2828

29+
import javax.annotation.concurrent.ThreadSafe;
2930
import java.util.Collection;
3031
import java.util.concurrent.CompletableFuture;
3132

@@ -36,6 +37,7 @@
3637
* @see <a href="https://www.arangodb.com/docs/stable/http/gharial.html">API Documentation</a>
3738
*/
3839
@SuppressWarnings("unused")
40+
@ThreadSafe
3941
public interface ArangoGraphAsync extends ArangoSerializationAccessor {
4042

4143
/**

src/main/java/com/arangodb/async/ArangoSearchAsync.java

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.arangodb.model.arangosearch.ArangoSearchCreateOptions;
2626
import com.arangodb.model.arangosearch.ArangoSearchPropertiesOptions;
2727

28+
import javax.annotation.concurrent.ThreadSafe;
2829
import java.util.concurrent.CompletableFuture;
2930

3031
/**
@@ -34,6 +35,7 @@
3435
* @see <a href="https://www.arangodb.com/docs/stable/http/views.html">View API Documentation</a>
3536
* @since ArangoDB 3.4.0
3637
*/
38+
@ThreadSafe
3739
public interface ArangoSearchAsync extends ArangoViewAsync {
3840

3941
/**

src/main/java/com/arangodb/async/ArangoVertexCollectionAsync.java

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.arangodb.entity.VertexUpdateEntity;
2626
import com.arangodb.model.*;
2727

28+
import javax.annotation.concurrent.ThreadSafe;
2829
import java.util.concurrent.CompletableFuture;
2930

3031
/**
@@ -34,6 +35,7 @@
3435
* @see <a href="https://www.arangodb.com/docs/stable/http/gharial-vertices.html">API Documentation</a>
3536
*/
3637
@SuppressWarnings("unused")
38+
@ThreadSafe
3739
public interface ArangoVertexCollectionAsync extends ArangoSerializationAccessor {
3840

3941
/**

src/main/java/com/arangodb/async/ArangoViewAsync.java

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.arangodb.ArangoSerializationAccessor;
2424
import com.arangodb.entity.ViewEntity;
2525

26+
import javax.annotation.concurrent.ThreadSafe;
2627
import java.util.concurrent.CompletableFuture;
2728

2829
/**
@@ -33,6 +34,7 @@
3334
* @since ArangoDB 3.4.0
3435
*/
3536
@SuppressWarnings("unused")
37+
@ThreadSafe
3638
public interface ArangoViewAsync extends ArangoSerializationAccessor {
3739

3840
/**

0 commit comments

Comments
 (0)