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 >
