Use Java 7 APIs to unzip a file instead of shelling out to `unzip`.

Summary:
Users have been reporting intermittent errors when multiple threads
are unzipping artifacts pulled from cache. Previously, we were
shelling out to `unzip` to do this extraction, but now, we use Java 7
APIs that create the parent directories for each file before
writing the file. We'll have to live with this in the wild and see
whether this is an improvement.

If nothing else, this makes this part of the code work on Windows
instead of only Linux and OS X.

Note that this diff also removes the `filesToExtract` option from `UnzipStep`,
as no one was using it and it was not tested.

Test Plan:
I did a build purely from cache with 12 threads and did not get
any collisions.
6 files changed
tree: 14e1f67339777934bf3c9237586324db6c82102b
  1. .idea/
  2. bin/
  3. config/
  4. docs/
  5. lib/
  6. plugin/
  7. pmd/
  8. scripts/
  9. src/
  10. test/
  11. testdata/
  12. third-party/
  13. .buckconfig
  14. .classpath
  15. .gitignore
  16. .project
  17. .travis.yml
  18. buck.iml
  19. build.xml
  20. DEFS
  21. LICENSE
  22. README.md
README.md

Buck

Buck is an Android build tool. To see what Buck can do for you, check out the documentation at http://facebook.github.io/buck/.

Build Status

Installation

To build Buck, run the following:

git clone git@github.com:facebook/buck.git
cd buck
ant
./bin/buck --help

License

Apache License 2.0