Hi all

Prompted by the question below on user@j.a.o: what is the thread-safety status of an API returned via ContextBuilder...buildApi?

Context themselves are supposed to be thread-safe [1], but an API context's getApi method is documented as:

"Threadsafe implementations will return a singleton." [2]

This could be taken to imply that *the API itself* might not be threadsafe (in which case getApi may end up returning a different instance for diffrent calls).

Given that, what can be concluded for the result of buildApi:

1. Thread-safe
2. Not thread-safe: pass the context around and all getApi on that when needed
3. Depends on the API implementation
4. Other

..?

Regards

ap

[1] https://jclouds.apache.org/start/concepts/#contexts
[2] http://jclouds-javadocs.elasticbeanstalk.com/org/jclouds/rest/ApiContext.html#getApi()

On 2015-12-22 06:23, Kiran Singh wrote:
Hi

My name is Kiran Singh and i am using jCloud openstacks-swift library
to connect with Swift server. I want to write a multi-threaded
application.

For making connection to swift server i am using following code:

SwiftApi swiftApi = ContextBuilder.newBuilder(provider)
                .endpoint(endUrl)
                .credentials(identity, credential)
                .buildApi(SwiftApi.class);

My question is SwiftApi is thread safe?

Can i use Singleton object of swiftApi for each thread or do i need to
create swiftApi object for each thread?

Thanks in advance
Kiran Singh

Reply via email to