Hi guys

 I am trying to get an insight in the design of the jClouds framework
 I am particulalry looking into the blobstore service

I have a question related to the purpose of having an Interface
(ProviderMetadata or BlobStore) and then an abstract class (
BaseProviderMetadata or BaseBlobtore) instead of using only an abstract
class

I see that the BaseBlobStore and BaseProviderMetadata classes can have some
implemented methods. But then what is the use of the interface on top of
that?

( I am also on IRC but due to the time difference (GMT+2) I cannot always
find the right people online)

Thank you


On 14 February 2014 18:15, Andrew Phillips <[email protected]> wrote:

> Are they only used to get the name of the method whcih subsequently is fed
>> to the  url of the http request???
>>
>
> jclouds uses these methods to automatically generate HTTP invocations. The
> class that achieves most of this is the RestAnnotationProcessor. [1]
>
>
>  Another question is why dynamic invocation is used? Is it used to enable
>> runtime deployment of new providers?
>>
>
> One of the reasons is similar to why deserializers such as Gson, or ORM
> tools such as Hibernate, also use dynamic processing of annotations: it
> means that the writer of a jclouds provider does not need to care about the
> underlying mechanics of HTTP call invocation, but can focus on simply
> defining the API endpoints that need to be called.
>
> If you have any questions about the design, feel free to jump on IRC
> (#jclouds at Freenode)!
>
> ap
>
> [1] https://github.com/jclouds/jclouds/blob/master/core/src/
> main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java
>

Reply via email to