)]}'
{
  "commit": "54c5c5cf41bd47d11ea309f37697d83ae65fe9e7",
  "tree": "181e37a31a457de9989f79199bd98d046e85830c",
  "parents": [
    "5371d134cfaf3c258f9ebb606a5cb061f419613e"
  ],
  "author": {
    "name": "Yun Peng",
    "email": "pcloudy@google.com",
    "time": "Thu Aug 24 17:40:22 2017 +0200"
  },
  "committer": {
    "name": "Damien Martin-Guillerez",
    "email": "dmarting@google.com",
    "time": "Fri Aug 25 12:53:08 2017 +0200"
  },
  "message": "Windows: Implement Java native launcher\n\nNow Bazel build a Windows exe binary to launch JVM for java_binary and\njava_test.\n\nThe Java native launcher is implemented with the same logic and\nfunctionalities as the original java shell stub script.\n\nChange-Id: Ida40579bce82425f3506f9376b7256aa3edc265e\nPiperOrigin-RevId: 166346445\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6323772b5875fb89758bd1faa90fd7422d684b2c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/NativeLauncherUtil.java",
      "new_id": "1e07ab52fbc2bc7b0c93db607eee3274f239cfa3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/NativeLauncherUtil.java"
    },
    {
      "type": "modify",
      "old_id": "1b363de05873f0db4f7296bc189e7edb2b79f4e6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java",
      "new_id": "73fbf27975cd15206d48da861ec8d13c110ab1f4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java"
    },
    {
      "type": "modify",
      "old_id": "845f48102b0001b37665f0a4951641f6e3d46704",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java",
      "new_id": "65956414df7e13ef2e0f1fb68e8e9d619bedff90",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java"
    },
    {
      "type": "modify",
      "old_id": "c28b32e0aeabdafa58f4b43dac02c09f7a1716fd",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java",
      "new_id": "cc6aff0791235ae34d3b0796bdc6d9fe32bd8980",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java"
    },
    {
      "type": "modify",
      "old_id": "9a093d163cea89d049b015243d699b7034373736",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java",
      "new_id": "0672fe49421373ce9709eba19e5f766a9f159c5c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java"
    },
    {
      "type": "modify",
      "old_id": "3490db77d7814346b53cf1d432f77a95550641f5",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java",
      "new_id": "8e7fdf2395ef08e87f274c56aeab8aea886c5512",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java"
    },
    {
      "type": "modify",
      "old_id": "e6f3b9b37ed51c5df102699b33c8db7f5480b7b1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java",
      "new_id": "9e2e719532858c10801ddc7c8d5aa4edf6d6093b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java"
    },
    {
      "type": "modify",
      "old_id": "d009ded6f82f0d568a0fdf3d2478fd0b3bfded78",
      "old_mode": 33188,
      "old_path": "src/test/py/bazel/launcher_test.py",
      "new_id": "7f81864cc9fada940ae322cfaacab7d584105e72",
      "new_mode": 33188,
      "new_path": "src/test/py/bazel/launcher_test.py"
    },
    {
      "type": "modify",
      "old_id": "fe228c9d15db0fdc61e720b6bd12cf03c4ac579a",
      "old_mode": 33188,
      "old_path": "src/test/py/bazel/test_base.py",
      "new_id": "6a5d1c670cd1169ec3539d2c1b542048bd2b1421",
      "new_mode": 33188,
      "new_path": "src/test/py/bazel/test_base.py"
    },
    {
      "type": "modify",
      "old_id": "3e41ac152a99e3b7cd604c4850dddcc1a4ca5497",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/bash_launcher.cc",
      "new_id": "01d9511c74b40827471e62b641e0743d10b9acda",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/bash_launcher.cc"
    },
    {
      "type": "modify",
      "old_id": "659c144c39bc01e6eef62951cfa0d044aba90d55",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/bash_launcher.h",
      "new_id": "758735561e81ea15ee7463c499961bce60765818",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/bash_launcher.h"
    },
    {
      "type": "modify",
      "old_id": "ce626d347e91aa4b81fe4b5e5bc07993da98ac11",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/java_launcher.cc",
      "new_id": "b8c0bdbd43a1ac343953852642e005d4429f3a48",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/java_launcher.cc"
    },
    {
      "type": "modify",
      "old_id": "5ffe5881abf5993f21fd163209a9c5c6f78bc4d3",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/java_launcher.h",
      "new_id": "896aacd74a2f52ee5c64286a81ecd60a3e8cb39e",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/java_launcher.h"
    },
    {
      "type": "modify",
      "old_id": "8e82542fb42478049bf5d63284c62757d3d23c29",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/launcher.cc",
      "new_id": "b981761da69038320c57081260e1b504008cbbc6",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/launcher.cc"
    },
    {
      "type": "modify",
      "old_id": "3ba8ca4723591555e3fafd423f627e0b39067488",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/launcher.h",
      "new_id": "1915b36455f5fe143bcb3db7ee83b1a9ebdcbc6b",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/launcher.h"
    },
    {
      "type": "modify",
      "old_id": "5131243a6995df931dafb2c015c51bc10e04edf7",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/python_launcher.cc",
      "new_id": "b5e65f91873d21a3c368cdd4918004431a66c1a6",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/python_launcher.cc"
    },
    {
      "type": "modify",
      "old_id": "d909ea6bcd631a3e75b13d62ef3daf0fbb504baf",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/python_launcher.h",
      "new_id": "1a21ca308ec746ba341351c9e540b662e4690e4e",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/python_launcher.h"
    },
    {
      "type": "modify",
      "old_id": "247c7050c5b6a075ea941a46e9fdbf665a7d71ad",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/util/launcher_util.cc",
      "new_id": "bc3eddb284880724848f9b3c4d806ac2b14d44c0",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/util/launcher_util.cc"
    },
    {
      "type": "modify",
      "old_id": "669ea1dbfc2ad94099067a6e5fabce1c8a3f060e",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/util/launcher_util.h",
      "new_id": "e5583006c0936866dadafcc50665778113659f1e",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/util/launcher_util.h"
    },
    {
      "type": "modify",
      "old_id": "b895b65c9c09c5cd318173e233da209f68054201",
      "old_mode": 33188,
      "old_path": "src/tools/launcher/util/launcher_util_test.cc",
      "new_id": "9d03849a83bd696ed45a7b9479c5ee188870ee9d",
      "new_mode": 33188,
      "new_path": "src/tools/launcher/util/launcher_util_test.cc"
    }
  ]
}
