You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jclouds.apache.org by kishore kumar <ki...@gmail.com> on 2017/04/21 11:33:46 UTC

Regarding creating new interface for async API's

Hi Ignasi and Alex,

Here is what I am thinking on regarding new Async interface. Please correct me if I am wrong.

I will create a new interface AsyncBlobStore and this will expose all the async methods. I will make BaseBlobStore implement both BlobStore and AsyncBlobStore. I will bind AsyncBlobStore to AzureBlobStore in AzureBlobStoreContextModule.

I will also expose a method in BlobStoreContext to getAsyncBlobStore.

Does my understanding sound right?

Re: Regarding creating new interface for async API's

Posted by Ignasi Barrera <na...@apache.org>.
What are the benefits of having the BaseBlobStore implement the Async
interface? Are there common behaviours we can abstract there? If not,
would it be OK for async implementations to extend the BaseBlobStore
and additionally directly implement the AsyncBlobStore interface? I
don't know the details of the BaseBlobStore class, but having a quick
look I see it already has several "unsupported operations" in there,
so I don't have a strong opinion on this.

Regarding the method in the context, it could be a good idea to make
it return an Optional, and configure the base blobstore context module
class to do something like this [1], to automatically return present
or absent based on the presence of a binding for the async interface.
This way providers will just need to bind the async interface and
everything will work as expected.

[1] https://github.com/jclouds/jclouds/blob/master/compute/src/main/java/org/jclouds/compute/config/BaseComputeServiceContextModule.java#L313-L316

On 21 April 2017 at 13:33, kishore kumar <ki...@gmail.com> wrote:
> Hi Ignasi and Alex,
>
> Here is what I am thinking on regarding new Async interface. Please correct me if I am wrong.
>
> I will create a new interface AsyncBlobStore and this will expose all the async methods. I will make BaseBlobStore implement both BlobStore and AsyncBlobStore. I will bind AsyncBlobStore to AzureBlobStore in AzureBlobStoreContextModule.
>
> I will also expose a method in BlobStoreContext to getAsyncBlobStore.
>
> Does my understanding sound right?