classmethod-aws/gradle-aws-plugin — pull request #1 by silasdavis (2014-10-21 17:24:10+00:00)
Title: Elastic Beanstalk, S3, and build improvements

The plugin provides a great base for deploying elastic beanstalk - thanks very much!

The issue I was having when using it was slightly fragile use of exceptions (particularly searching for particular substrings in error messages) to determine if resources already exist, when there are first class API calls for determining existence of resources. I have grouped together a few changes in this PR. I can split them if you like, but hopefully it is not too large to require that. The changes fall into 3 categories:

**Build script improvements**
- Added root `settings.gradle` file so that plugin can sit in a multiple project build (as in in the buildSrc/ of another project)
- Modularised deployment to allow forks to define their own deployment mechanism
- Documented the above in docs/development.md (and referenced from main readme)
- Removed reference to root project where project would do

**AWS task improvements**
- Stopped using exception logic to handle non-existence in CreateApplicationTask and CreateConfigurationTemplateTask
- Allowed FileUploadTask to use md5sum of file (stored in S3 ETag) to avoid uploading identical files

**Dependencies version bumps**
- Bumped AWS SDK to latest version
- Bumped Groovy version to 2.3.7
- Bumped Gradle wrapper version to 2.1
- Added Guava dependency at 18.0 - for hashing logic - not strictly necessary but a nice library to have around anyway

What wasn't done:
- Tests! There don't seem to be any at the moment. I would be up for adding some but I didn't want to bite off too much before hearing your thoughts
- Consistent removal of control-flow-through-exeception-catching logic in other tasks. There are other places where this could do with being revised, but I wanted to only change tasks that I was directly testing in my own projects so I didn't touch other tasks. I will make further PRs if I get round to updating other tasks. Tests would also help in this respect to make changes safer.

Thanks!