Class name improvement.
REVIEW-2733 - improve test case name.
REVIEW-2729 - use an inner class instead of AIC to leverage a field.
REVIEW-2728 - use an inner class instead of AIC to leverage a field.
REVIEW-2728 - close the tar & zip streams if an exception is through during creation.
REVIEW-2720 - test that the output after copying is _exactly_ what we expect.

i.e. don't just check for the files that should be there, but also assert there are no extra files.
REVIEW-2720 - don't expose the copy spec via FileCopyDetailsInternal.

It still has it internally though. The internal protocol just exposes includeEmptyDirs. This might make sense to make available on the public type and have it be changeable.
REVIEW-2719 - test that the output after copying is _exactly_ what we expect.

i.e. don't just check for the files that should be there, but also assert there are no extra files.
REVIEW-2713 - use a coarse static lock around class generation.

This may have a performance impact for parallel build as all decorated object instantiations require lock acquisition.
REVIEW-2712 - promote the CompositeFileTree type that is backed by a list of FileTrees.

Also moved creation of it behind FileResolver.
REVIEW-2707 - revert accidental change to generation of ear deployment descriptor.
Fix error message when failing to find a method by name via reflection.
GRADLEREV-51 - replace some usages of Groovy based reflection with Java based.
GRADLEREV-51 - Remove last of Groovy based ReflectionUtil.