Hi Fotis
I understand that jClouds generates the http calls for each concrete
provider but I cannot find the exact class that does this and where it gets
the information for the required attributes from.
Glad you're interested in jclouds! For a general overview of the
architectural concepts, you can try the 'Core Concepts' document on
the wiki page [1].
As regards the lower-level details, the HTTP call generation largely
happens in the RestAnnotationProcessor [2]. In many cases, concrete
implementations are encapsulated in "strategies" (e.g. [3, 4]) that
are injected abstraction layer classes like BaseComputeService [5] by
Guice.
Luckily, you'll find that BaseBlobStore is somewhat less complex than
BaseComputeService ;-)
This is only a very high-level sketch: please feel free to hop on to
IRC for further discussion!
ap
[1] https://wiki.apache.org/jclouds/Core%20Concepts
[2]
https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java
[3]
https://github.com/jclouds/jclouds/blob/master/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/strategy/AWSEC2GetNodeMetadataStrategy.java
[4]
https://github.com/jclouds/jclouds/blob/master/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java
[5]
https://github.com/jclouds/jclouds/blob/master/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java