jclouds/jclouds — pull request #1221 by adriancole (2013-01-22 17:23:53+00:00)
Title: Merge aws common and sts

You probably recall that in openstack, we refactored the "common" bag into keystone, and made the apis depend on that. This helped reduced jar count and re-coupled the two libraries that don't work well apart. It also made the baseline dependency for all openstack apis live-testable, as you can authenticate keystone and do something meaningful.

In jclouds 1.6, we have support for temporary authentication for amazon apis called `sts`. There are 3 api calls including making a temporary key out of yours, delegating a subset of permissions as a new key, and creating a federated user. All amazon apis support this temporary access means.

In order to code support, we have to allow the amazon apis (like ec2) have access to `sts` credentials classes in order to pull the token information. To that end, some of the classes are in aws-common. This was a good start, but we can't actually test they work unless there is access to the api to create a temporary credential. In other words, we end up cycling around similar to keystone.

The following pulls the sts client into a new dep and make all amazon apis depend on that. The aws-common jar would no longer be a part of jclouds 1.6. The impact is that the new "common" jar is 20KB larger than before. OTOH, it allows us to support and test temporary credentials in all amazon apis without complex dependency cycles.