Skip to content

Commit 5fbd10b

Browse files
committed
added thread safety annotations (#445)
(cherry picked from commit b6445b6)
1 parent fd6223a commit 5fbd10b

20 files changed

+51
-0
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,12 @@
341341
<artifactId>jackson-dataformat-velocypack</artifactId>
342342
<optional>true</optional>
343343
</dependency>
344+
<dependency>
345+
<groupId>com.google.code.findbugs</groupId>
346+
<artifactId>jsr305</artifactId>
347+
<version>3.0.2</version>
348+
<scope>provided</scope>
349+
</dependency>
344350
<dependency>
345351
<groupId>ch.qos.logback</groupId>
346352
<artifactId>logback-classic</artifactId>

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.arangodb.model.*;
2525
import com.arangodb.util.RawData;
2626

27+
import javax.annotation.concurrent.ThreadSafe;
2728
import java.util.Collection;
2829

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

4042
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.slf4j.Logger;
4646
import org.slf4j.LoggerFactory;
4747

48+
import javax.annotation.concurrent.ThreadSafe;
4849
import javax.net.ssl.HostnameVerifier;
4950
import javax.net.ssl.SSLContext;
5051
import java.io.InputStream;
@@ -67,6 +68,7 @@
6768
* @author Mark Vollmary
6869
* @author Michele Rastelli
6970
*/
71+
@ThreadSafe
7072
public interface ArangoDB extends ArangoSerdeAccessor {
7173

7274
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.arangodb.model.arangosearch.AnalyzerDeleteOptions;
2727
import com.arangodb.model.arangosearch.ArangoSearchCreateOptions;
2828

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

@@ -37,6 +38,7 @@
3738
* @see <a href="https://www.arangodb.com/docs/stable/http/database.html">Databases API Documentation</a>
3839
* @see <a href="https://www.arangodb.com/docs/stable/http/aql-query.html">Query API Documentation</a>
3940
*/
41+
@ThreadSafe
4042
public interface ArangoDatabase extends ArangoSerdeAccessor {
4143

4244
/**

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,15 @@
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
*/
35+
@ThreadSafe
3336
public interface ArangoEdgeCollection extends ArangoSerdeAccessor {
3437

3538
/**

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

Lines changed: 2 additions & 0 deletions
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 ArangoSerdeAccessor {
3739

3840
/**

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

Lines changed: 3 additions & 0 deletions
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

Lines changed: 3 additions & 0 deletions
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/ArangoSerdeAccessor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,12 @@
2222

2323
import com.arangodb.internal.serde.InternalSerde;
2424

25+
import javax.annotation.concurrent.ThreadSafe;
26+
2527
/**
2628
* @author Mark Vollmary
2729
*/
30+
@ThreadSafe
2831
public interface ArangoSerdeAccessor {
2932

3033
/**

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

Lines changed: 3 additions & 0 deletions
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 ArangoSerdeAccessor {
3437

3538
/**

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@
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
*
2830
* @author Mark Vollmary
2931
* @see <a href="https://www.arangodb.com/docs/stable/http/views.html">View API Documentation</a>
3032
* @since ArangoDB 3.4.0
3133
*/
34+
@ThreadSafe
3235
public interface ArangoView extends ArangoSerdeAccessor {
3336

3437
/**

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

Lines changed: 3 additions & 0 deletions
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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.arangodb.model.*;
2626
import com.arangodb.util.RawData;
2727

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

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

4042
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import org.slf4j.Logger;
5050
import org.slf4j.LoggerFactory;
5151

52+
import javax.annotation.concurrent.ThreadSafe;
5253
import javax.net.ssl.SSLContext;
5354
import java.io.InputStream;
5455
import java.util.Collection;
@@ -68,6 +69,7 @@
6869
*
6970
* @author Mark Vollmary
7071
*/
72+
@ThreadSafe
7173
public interface ArangoDBAsync extends ArangoSerdeAccessor {
7274

7375
void shutdown();

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.arangodb.model.arangosearch.AnalyzerDeleteOptions;
2929
import com.arangodb.model.arangosearch.ArangoSearchCreateOptions;
3030

31+
import javax.annotation.concurrent.ThreadSafe;
3132
import java.util.Collection;
3233
import java.util.Map;
3334
import java.util.concurrent.CompletableFuture;
@@ -39,6 +40,7 @@
3940
* @see <a href="https://www.arangodb.com/docs/stable/http/database.html">Databases API Documentation</a>
4041
* @see <a href="https://www.arangodb.com/docs/stable/http/aql-query.html">Query API Documentation</a>
4142
*/
43+
@ThreadSafe
4244
public interface ArangoDatabaseAsync extends ArangoSerdeAccessor {
4345

4446
/**

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

Lines changed: 2 additions & 0 deletions
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
/**
@@ -33,6 +34,7 @@
3334
* @author Mark Vollmary
3435
* @see <a href="https://www.arangodb.com/docs/stable/http/gharial-edges.html">API Documentation</a>
3536
*/
37+
@ThreadSafe
3638
public interface ArangoEdgeCollectionAsync extends ArangoSerdeAccessor {
3739

3840
/**

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

Lines changed: 2 additions & 0 deletions
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

@@ -35,6 +36,7 @@
3536
* @author Mark Vollmary
3637
* @see <a href="https://www.arangodb.com/docs/stable/http/gharial.html">API Documentation</a>
3738
*/
39+
@ThreadSafe
3840
public interface ArangoGraphAsync extends ArangoSerdeAccessor {
3941

4042
/**

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

Lines changed: 2 additions & 0 deletions
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

Lines changed: 2 additions & 0 deletions
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
/**
@@ -33,6 +34,7 @@
3334
* @author Mark Vollmary
3435
* @see <a href="https://www.arangodb.com/docs/stable/http/gharial-vertices.html">API Documentation</a>
3536
*/
37+
@ThreadSafe
3638
public interface ArangoVertexCollectionAsync extends ArangoSerdeAccessor {
3739

3840
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.arangodb.ArangoSerdeAccessor;
2424
import com.arangodb.entity.ViewEntity;
2525

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

2829
/**
@@ -32,6 +33,7 @@
3233
* @see <a href="https://www.arangodb.com/docs/stable/http/views.html">View API Documentation</a>
3334
* @since ArangoDB 3.4.0
3435
*/
36+
@ThreadSafe
3537
public interface ArangoViewAsync extends ArangoSerdeAccessor {
3638

3739
/**

0 commit comments

Comments
 (0)