REVIEW-497, tidy-up with closing files in the CachingFileWriter. Added a way to close closeables in a friendly way with proper IOException handling.
More work in the SimpleXmlWriter. Avoided String concatenation and instead we're directly writing to the writer. This should be faster. Writing CDATA is not yet optimized.
REVIEW-595 and more. JUnit xml report improvements.

The report generation is more efficient, it operates on char arrays, directly streaming to the writer. The CDATA processing is efficient, too. The test outputs are maintained in text files.
Improved the SimpleXmlWriter to validate the element and attribute names.
Made java5 happy.
GRADLE-2175: Refactor ModuleVersionRepository.resolve to provide instance of ModuleSource to locate Artifact from artifactAtRepositoryCachedResolutionIndex.
polishing
GRADLE-2364 Add more integration tests for running offline after failing resolving artifacts.
Publish automatically to mavenLocal when using the 'maven-publish' plugin (this may not be what we want long-term)
Integration test for publishing mavenModules to local maven repository
Switched 'Feature Lifecycle' user guide section from chapter to appendix
Move knowledge of how to apply M2Installation to GradleExecuter into AbstractIntegrationSpec to avoid package cycle
- Don't really like this: GradleExecuter should not be in same package as AbstractIntegrationSpec
- Will look at moving base Specs and Runners into separate package from Executer+Distribution stuff
Moved code related to GradleExecuter and GradleDistribution into org.gradle.integtests.fixtures.executer
- Affects many, many files, but mostly just imports
- Certain files (eg RuleHelper) are not in the correct spot, but were moved to avoid cycles
Moved RuleHelper to live with other test utilities
M2Installation now knows how to apply itself to a GradleExecuter, keeping the knowledge of Maven local installs in one spot.
Some spec updates.
Changed a few more int tests to use the MavenHttpModule and IvyHttpModule fixtures.
Changed a few more int tests to use the MavenHttpModule and IvyHttpModule fixtures.
fixed typo in package name
GRADLE-2585: use timestamped version passed as extra attribute when resolving pom file.
- TODO timestamp attribute is not passed to getArtifactRef atm as the resolvedModuleDescriptor passed back contains the parsed information from the pom.