)]}'
{
  "log": [
    {
      "commit": "6b846cd8a3de5ecd04bd56aaf865ea35bd9c82d0",
      "tree": "025365306c86c7cb500946080e0f1d07ba9c2075",
      "parents": [
        "7019203d3d5fb0e83b58f27e02fd3b177eb93935"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon Aug 25 14:08:30 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon Aug 25 14:08:30 2014 -0700"
      },
      "message": "Fix WindowsAclViews test failures\n\nThere are some test failures on the 32-bit platforms.\nIt seems the tests were having some issues serialzing and deserialzing\nSIDs correctly. This does not appear to be a 32-bit issue, so much\nas a GC issue. It looks like the SIDs were getting garbage collected\nbecause the only reference to them was a serialized Pointer in the\nACE.\n\nThis change adds caching of SIDs in a HashMap to the tests to avoid\nserializing and deserializing of SIDs.\n\nCode Review: https://codereview.appspot.com/132800043/\n"
    },
    {
      "commit": "7019203d3d5fb0e83b58f27e02fd3b177eb93935",
      "tree": "d91d367cb5b02e4a7600ed4caff217502a0a0a17",
      "parents": [
        "9aa177dcd7a88853e65baf511a03cf39a82782f5"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Aug 21 13:41:30 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Aug 21 13:41:30 2014 -0700"
      },
      "message": "Fix b/17116680: Change log level for unresolvable SIDs to FINEST\"\n\nCode Review: http://codereview.appspot.com/133730043\n"
    },
    {
      "commit": "9aa177dcd7a88853e65baf511a03cf39a82782f5",
      "tree": "bd5f8de466c37be4a64e099499ed410790a10ec4",
      "parents": [
        "062155f1ab83857250c48a9b070ec4f5b0715260"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Tue Aug 05 16:27:15 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon Aug 11 18:18:25 2014 -0700"
      },
      "message": "Fix b/16198970: Config option to skip reading share ACL\n\nThe adaptor attempts to preserve access control integrity when sending\nAccess Control Lists (ACLs) to the GSA. In general, only users that have access\nto a file share have access to the files maintained on that share, so the\nadaptor includes the share\u0027s ACL in those sent to the GSA.  However, in some\nconfigurations, the adaptor may not have sufficient permissions to read the\nshare ACL. In those instances, the broken share ACL will prevent all files\nmaintained on that file share from appearing in search results. The GSA\u0027s\nIndex Diagnostics for those will also indicate a broken inheritance chain.\n\nIf the share ACL cannot be read by the adaptor, the administrator may\nskip the attempt to read the share ACL by setting the\n\u0027filesystemadaptor.skipShareAccessControl\u0027 configuration option to \u0027true\u0027.\nThis feeds a highly permissive share ACL to the GSA, rather than the actual\nshare ACL, leaving only the file system ACLs to control access.\n\nWARNING: Bypassing the file share access control may be inconsistent with\nenterprise security policies. This may allow users that do not have access\nto the file share to see documents hosted by that file share in search results.\n\nCode Review:\nhttp://codereview.appspot.com/123780043\n"
    },
    {
      "commit": "062155f1ab83857250c48a9b070ec4f5b0715260",
      "tree": "8fe7e3485eab4771e717015b84c2ae1552736c2f",
      "parents": [
        "684b5a333d12e6e60bfb94327ac3907bc64d97da"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Aug 08 11:12:34 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Aug 08 11:12:34 2014 -0700"
      },
      "message": "update build.xml to be like other adaptors\u0027\n\nDB LDAP AD and SP build.xml are very similar.\nMaking FS be as similar.\nDuring this process noticed that FS build.xml\nfile had confusion between adaptor.version and\nadaptorlib.version .\n"
    },
    {
      "commit": "684b5a333d12e6e60bfb94327ac3907bc64d97da",
      "tree": "12d153d39922998d1971ee5191f8982615ef7bfd",
      "parents": [
        "e9c993cb654fefd9b3cbc73eab7245a4cda0f22c"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Wed Jul 23 19:37:39 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jul 25 12:33:25 2014 -0700"
      },
      "message": "fix google java style guide issues\n\nfix all google style guide issues except the\nones for variable names that have to follow\n\u0027^[a-z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*$\u0027 because\nwe need to have certain variables match windows\nlettering precisely.\n"
    },
    {
      "commit": "e9c993cb654fefd9b3cbc73eab7245a4cda0f22c",
      "tree": "782d784b857deaf53a14cc8012220a50d22c3d21",
      "parents": [
        "b93564e62ae340da8c0373e3adf10a47db0927ff"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Jul 22 17:21:21 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Wed Jul 23 08:33:44 2014 -0700"
      },
      "message": "Revert \"Improving handling of last access time\"\n\nThis reverts commit c638b7d602e9a2ab91c26642ea12214d6a08e895.\n\nConflicts:\n\tsrc/com/google/enterprise/adaptor/fs/WindowsFileDelegate.java\n"
    },
    {
      "commit": "b93564e62ae340da8c0373e3adf10a47db0927ff",
      "tree": "90e6db3e5fc8224a110d33069fdd787fd24531a2",
      "parents": [
        "8e6e3e48c7cadc7b21569da77c0774f6fab93038"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Jul 22 17:18:20 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Wed Jul 23 08:33:44 2014 -0700"
      },
      "message": "Revert \"Updating over with last access updates\"\n\nThis reverts commit a331e8c3f80e2d35ff9534389516ff2e6a3a9a52.\n"
    },
    {
      "commit": "8e6e3e48c7cadc7b21569da77c0774f6fab93038",
      "tree": "6e6081d181e17fb176221fc3aae3cc23f7cd61dc",
      "parents": [
        "0628ec7e6ede67f78b9d5c83bebbebc7d5095815"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Jul 22 17:18:01 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Wed Jul 23 08:33:44 2014 -0700"
      },
      "message": "Revert \"Fixing issue with last access time\"\n\nThis reverts commit a495f5a21c8833bab9fb9b2bd60d78419c152d08.\n"
    },
    {
      "commit": "0628ec7e6ede67f78b9d5c83bebbebc7d5095815",
      "tree": "97dced8a746bf7073f4ea7122468ad9797da8b4e",
      "parents": [
        "159bde32504615052bac41b8cf268fea4f949140"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Wed Jul 23 08:32:17 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Wed Jul 23 08:33:43 2014 -0700"
      },
      "message": "Make LONG be 64bits on 64bit system\n"
    },
    {
      "commit": "159bde32504615052bac41b8cf268fea4f949140",
      "tree": "a5e233bfff1ac64dc673dd1555c7e23291290651",
      "parents": [
        "a495f5a21c8833bab9fb9b2bd60d78419c152d08",
        "bf04d955e1eb9ea380673d102ea20fcdfa5bf515"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Jul 22 13:37:55 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Jul 22 13:37:55 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "a495f5a21c8833bab9fb9b2bd60d78419c152d08",
      "tree": "a5e233bfff1ac64dc673dd1555c7e23291290651",
      "parents": [
        "a331e8c3f80e2d35ff9534389516ff2e6a3a9a52"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Jul 16 18:05:59 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Jul 22 13:35:33 2014 -0700"
      },
      "message": "Fixing issue with last access time\n\nGet the last access time is failing for folders so updating the adaptor to\nuse the last access time of the attributes for the folder.\n"
    },
    {
      "commit": "bf04d955e1eb9ea380673d102ea20fcdfa5bf515",
      "tree": "6c78096d6a6f8a888822ff6e384af34ba6d48317",
      "parents": [
        "029fbc30248fe7335501f7956b25cfdc038129e5"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jul 18 14:35:51 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jul 18 14:35:51 2014 -0700"
      },
      "message": "Revert \"Initial changes for Linux support\"\n\nThis reverts commit 029fbc30248fe7335501f7956b25cfdc038129e5.\n\nThe above commit appears to have broke our CB.\n"
    },
    {
      "commit": "029fbc30248fe7335501f7956b25cfdc038129e5",
      "tree": "bd4d6565aa2c6b655f4764c91dbe3c9c8975bce4",
      "parents": [
        "a331e8c3f80e2d35ff9534389516ff2e6a3a9a52"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Jul 17 22:05:27 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Jul 17 22:23:06 2014 -0700"
      },
      "message": "Initial changes for Linux support\n\nAdding LinuxFileDlegate and support in FsAdaptor to load the Linux version of\nthe delegate.\n"
    },
    {
      "commit": "a331e8c3f80e2d35ff9534389516ff2e6a3a9a52",
      "tree": "6c78096d6a6f8a888822ff6e384af34ba6d48317",
      "parents": [
        "f47e2c20753f5c6bf3e6f511e5cc13d2f74a273f"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Mon Jul 14 12:00:13 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Mon Jul 14 12:00:13 2014 -0700"
      },
      "message": "Updating over with last access updates\n\nUpdating guide to indicate that the adaptor does not require write\npermission to keep last access date unchanged.\n"
    },
    {
      "commit": "f47e2c20753f5c6bf3e6f511e5cc13d2f74a273f",
      "tree": "6d400f22283b3784ff9f23c6d9606e4ac142d37b",
      "parents": [
        "fe9d9c96f91622626a59a81e9017e45bc3ab711e"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Jul 10 17:23:16 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Jul 11 14:50:55 2014 -0700"
      },
      "message": "Fix b/16139028 Part2: Do not feed docids that are too long.\n\nExamination of customer log files showed frequent exceptions thrown\nfrom WindowsAclFileAttributesView.getFileSecurity() claiming that\n\"The filename, directory name, or volume label syntax is incorrect.\"\nAs it turned out, all these pathnames exceeded the maximum pathname\nlength of 260 characters. The too-long pathnames occur when we prepend\nthe UNC server + share syntax to the local pathname.\n\nSee:\nhttp://msdn.microsoft.com/library/windows/desktop/aa365247.aspx\n\nThis change avoids feeding docids that are too long. The windows\nversion of newDocId() now throws IllegalArgumentException if the\nsupplied pathname is too long.\n\nCode Review:  http://codereview.appspot.com/109680045\n"
    },
    {
      "commit": "fe9d9c96f91622626a59a81e9017e45bc3ab711e",
      "tree": "fe4473cb9a36a18491efd28f2ff6e8023d4d841f",
      "parents": [
        "473e2938388f8386a8fdb1c22c91bd2e74392d2f"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jul 09 20:41:17 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jul 09 20:51:09 2014 -0700"
      },
      "message": "Fix b/16139028 Part1: Close DirectoryStreams to avoid leaking resources.\n\nThis change closes the DirectoryStreams in FsAdaptor, as they were\nbeing leaked.  Also closes a Windows HANDLE in a finally clause\nin WindowFileDelegate.getLastAccessTime to ensure it gets called.\n\nCode Review:  http://codereview.appspot.com/107710043\n"
    },
    {
      "commit": "473e2938388f8386a8fdb1c22c91bd2e74392d2f",
      "tree": "7a5613336f44e2be543ccb8ec0d474180a1fed95",
      "parents": [
        "0b75c2770d4447fd4196617a45f9f2ac117084b5"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jul 09 14:01:42 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jul 09 14:39:56 2014 -0700"
      },
      "message": "Fix b/15940781 FsAdaptor.getDocContent throws InvalidPathException\n\nThis change catches InvalidPathException thrown by Paths.get()\nand handles it the same as the subsequent check for docid validity.\n\nCode Review: http://codereview.appspot.com/106580044\n"
    },
    {
      "commit": "0b75c2770d4447fd4196617a45f9f2ac117084b5",
      "tree": "3408a4604ea7b595fd34d6d0c28cd853ac1f29fc",
      "parents": [
        "deb06f20b99fa01ab8b3c471ee999d721ce83e6c",
        "40e1bd32c3e6ea471c34910fbfb242a37af70dce"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Wed Jul 09 12:39:59 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Wed Jul 09 12:39:59 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "40e1bd32c3e6ea471c34910fbfb242a37af70dce",
      "tree": "19117faf2cbcd13f7042d581e4aea0f4c6adbfdb",
      "parents": [
        "e6050bbb51484e0f57eeff6f0b771d63394c764f",
        "c638b7d602e9a2ab91c26642ea12214d6a08e895"
      ],
      "author": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Tue Jul 08 18:27:24 2014 +0200"
      },
      "committer": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Tue Jul 08 18:27:24 2014 +0200"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "c638b7d602e9a2ab91c26642ea12214d6a08e895",
      "tree": "25cd8f8e8e60c5f280c4d8eeaae70355462c44c5",
      "parents": [
        "d3b8276814cc978e4aa065d78508a931819cda00"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Sun Jul 06 09:32:13 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Sun Jul 06 09:41:04 2014 -0700"
      },
      "message": "Improving handling of last access time\n\nUpdating the adaptor to call the Win Api SetFileTime with the value of -1 for\nthe last access time before reading the content of a file. This will stop\nWindows from updating the last access time as the file content is read by the\nadaptor. As a fail over, the adaptor also queries the last access time of a\ndocument before reading the content and then check if the time has changed. If\nit has, then the adaptor will attempt to reset the last access time of the\ndocument back to the original.\n"
    },
    {
      "commit": "e6050bbb51484e0f57eeff6f0b771d63394c764f",
      "tree": "f1aca2446dd20c681416df73f3df391266432eac",
      "parents": [
        "472fc3e741668a5ebad5f19ece237c0dc32691ac"
      ],
      "author": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Fri Jul 04 13:13:00 2014 +0200"
      },
      "committer": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Fri Jul 04 13:13:00 2014 +0200"
      },
      "message": "Clarified the permissions needed to the filesystem adaptor\n"
    },
    {
      "commit": "d3b8276814cc978e4aa065d78508a931819cda00",
      "tree": "c77898a7d6ed1f6b6edce7abd5b02aa18e2df50d",
      "parents": [
        "28cf77fd7b4891a693db0216e5cd833927ece7d0",
        "137071c6db7e23019baf6eb165a1203383644de2"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jul 02 16:31:09 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jul 02 16:31:09 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "28cf77fd7b4891a693db0216e5cd833927ece7d0",
      "tree": "016b21a4385a5a2e0112e4f788de33d9240f96f4",
      "parents": [
        "bcf43a2241809f26d85cc995c4fb973ac4a9a884"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Tue Jul 01 17:23:36 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jul 02 15:08:13 2014 -0700"
      },
      "message": "Fix b/15667934: Removed files log \"The path ... is not a supported file type.\"\n\nFiles that were moved or deleted would log a message claiming the file\nis not a supported file type. This is because FsAdaptor.isSupportedPath()\nreturns false as the non-existent file is neither a directory, nor\na regular file.\n\nReading the BasicFileAttributes on a non-existent file throws an\nexception. So I catch the various not found exceptions, and\nmoved the call to isSupportedPath() to after the attributes are fetched.\n\nMoving the call to isSupportedPath() down also fixed a broken FsAdaptor\ntest, so I removed the comment that said the test was invalid.\n\nNext, the method name, isSupportedPath(), and the log message generated\nif it returns false were confusing to the user.  Some users thought\nthat \"unsupported file type\" was refering to the file contents, like\nJPEGs or AIFFs.  In reality, the method was checking that the path was\na regular file or a directory, not a link or a special file (like PRN).\nI changed the name of the method to isFileOrFolder() and the modified\nthe text of the log message to clarify.\n\nFinally, I tuned some of the log levels, choosing INFO or FINE, rather\nthan WARNING for normal, expected behaviours.\n\nCode Review: https://codereview.appspot.com/110330046/\n"
    },
    {
      "commit": "137071c6db7e23019baf6eb165a1203383644de2",
      "tree": "df604b7a0ebc83f41c0b50473ad7babc716c97c8",
      "parents": [
        "bcf43a2241809f26d85cc995c4fb973ac4a9a884"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Jul 01 09:58:08 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Jul 01 09:58:08 2014 -0700"
      },
      "message": "Fixing deserialization bug\n\nThe adaptor was releasing a buffer with NetApiBufferFree before\nthe deserialization was completed. The constructor for\nWinNT.SECURITY_DESCRIPTOR_RELATIVE deserializes memory from the\nsecurity descriptor and the adaptor was calling NetApiBufferFree before\ncreating the WinNT.SECURITY_DESCRIPTOR_RELATIVE object.\n"
    },
    {
      "commit": "deb06f20b99fa01ab8b3c471ee999d721ce83e6c",
      "tree": "1aa8b7ef701386ef4b61d3a8a37cf261352540ba",
      "parents": [
        "bcf43a2241809f26d85cc995c4fb973ac4a9a884"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jun 27 18:17:57 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jun 27 18:17:57 2014 -0700"
      },
      "message": "Add server.port to list of optional config\n"
    },
    {
      "commit": "bcf43a2241809f26d85cc995c4fb973ac4a9a884",
      "tree": "32d31e4d22a5770f7e6d76d8d5ec92e32290cf71",
      "parents": [
        "cdf8be0e4906385cc079aee9535c5bcf19c77f9d"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Jun 16 11:30:31 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Jun 16 11:30:31 2014 -0700"
      },
      "message": "let lib handle missing src path\n\nChanging default src from \"\" to null as recent library\ncommit[1] means that an earlier fs commit[2], which worked\naround lib shortcoming, can be reverted.\n\n[1] https://code.google.com/p/plexi/source/detail?r\u003d05892ca8b0e8b7146da2142a48fb83d4619911a0\n[2] https://code.google.com/p/plexi/source/detail?r\u003d4ef8f07341a562a4c2e2bebb5e1007ba2f56b5d9\u0026repo\u003dfs\u0026path\u003d/src/com/google/enterprise/adaptor/fs/FsAdaptor.java#\n"
    },
    {
      "commit": "cdf8be0e4906385cc079aee9535c5bcf19c77f9d",
      "tree": "f1414a7a389bd96a481cb299fc150a5f0c41767a",
      "parents": [
        "079fe1b86cbc03eb38c171b75812b34d01d6b424"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Jun 12 10:47:56 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Jun 12 10:47:56 2014 -0700"
      },
      "message": "Updating FS adaptor to use latest adaptor library.\n"
    },
    {
      "commit": "472fc3e741668a5ebad5f19ece237c0dc32691ac",
      "tree": "3633c9f5ec5300b8ca0c9266e0f06dc5602070f7",
      "parents": [
        "aed579589694f9dd105cbe5ea3ce54dc77de249b"
      ],
      "author": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Fri May 23 13:16:50 2014 +0200"
      },
      "committer": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Fri May 23 13:16:50 2014 +0200"
      },
      "message": "Fixed reviewer comments.\n"
    },
    {
      "commit": "aed579589694f9dd105cbe5ea3ce54dc77de249b",
      "tree": "d10ca91e6f505d79f846af5071d7c7ab54f022bc",
      "parents": [
        "c1f7be57cc040a36dbb69e741bc68fbf0ecfacce"
      ],
      "author": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Thu May 22 19:17:07 2014 +0200"
      },
      "committer": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Thu May 22 19:17:07 2014 +0200"
      },
      "message": "Fixed reviewer comments.\n"
    },
    {
      "commit": "c1f7be57cc040a36dbb69e741bc68fbf0ecfacce",
      "tree": "368972e0bd94845fcbb1aa8fa3bdbc5cbabbe85f",
      "parents": [
        "e39220dd9c4f0de564fab74fa8880efd978afa30"
      ],
      "author": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Thu May 22 10:44:49 2014 +0200"
      },
      "committer": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Thu May 22 10:44:49 2014 +0200"
      },
      "message": "Fixed reviewer comments\n"
    },
    {
      "commit": "e39220dd9c4f0de564fab74fa8880efd978afa30",
      "tree": "9b60be1b75ab150c4be71ffcb004f5f97aa77857",
      "parents": [
        "4f95f0c37d8601d05f2a92e5e425f76f0e1f477e"
      ],
      "author": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Wed May 21 13:53:35 2014 +0200"
      },
      "committer": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Wed May 21 13:53:35 2014 +0200"
      },
      "message": "Fixed reviewer comments.\n"
    },
    {
      "commit": "4f95f0c37d8601d05f2a92e5e425f76f0e1f477e",
      "tree": "2bbffd35edffdb1b6451f37750e12b822d43779c",
      "parents": [
        "c469b4ec08787faecba38fbb52ed7af1b5b31f3e"
      ],
      "author": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Tue May 20 15:44:17 2014 +0200"
      },
      "committer": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Tue May 20 15:44:17 2014 +0200"
      },
      "message": "clarification of the last access date use\n"
    },
    {
      "commit": "c469b4ec08787faecba38fbb52ed7af1b5b31f3e",
      "tree": "d0520f20615d4141da8518ff986d40de1d24db6b",
      "parents": [
        "25287f2c2fa404ac987338426366ea062d3a1d34"
      ],
      "author": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Mon May 19 14:20:54 2014 +0200"
      },
      "committer": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Mon May 19 14:20:54 2014 +0200"
      },
      "message": "Fixed a typo\n"
    },
    {
      "commit": "25287f2c2fa404ac987338426366ea062d3a1d34",
      "tree": "7e4190ec1d5bc61764e70cb0395b390b9b14220e",
      "parents": [
        "079fe1b86cbc03eb38c171b75812b34d01d6b424"
      ],
      "author": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Mon May 19 13:17:12 2014 +0200"
      },
      "committer": {
        "name": "jdbrowne",
        "email": "jdbrowne@google.com",
        "time": "Mon May 19 13:17:12 2014 +0200"
      },
      "message": "Clarified the permission section, on customer request.\n"
    },
    {
      "commit": "079fe1b86cbc03eb38c171b75812b34d01d6b424",
      "tree": "28de4766c4f43f5a4e6c5424f5c1b46a5ef62a85",
      "parents": [
        "93cb90d2e3d2bb20e9912486e9f6bfb6fcbf065d"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri May 16 00:11:09 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri May 16 00:11:09 2014 -0700"
      },
      "message": "move lib/plexi to 4.0.2\n"
    },
    {
      "commit": "93cb90d2e3d2bb20e9912486e9f6bfb6fcbf065d",
      "tree": "2982c4e997ef51203db291a8a0db577d23fce1ff",
      "parents": [
        "cc553af09b8cb36975e2314bd6372ff0edf775a2"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Tue May 06 19:25:59 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu May 15 17:49:34 2014 -0700"
      },
      "message": "Add Config Options to Expire Content Based on LastAccess/LastModified Time\n\nThis change adds configuration options to expire content based on\nLastAccessTime and/or LastModifiedTime. Each allows two different\nforms of specification:\n  - Expire content older than some specific date.  (Absolute)\n  - Expire content older than some number of days. (Relative)\n\nThe configuration parameters are:\nfilesystemadaptor.lastAccessedDate - Absolute last accessed time expiration\nfilesystemadaptor.lastAccessedDays - Relative last accessed time expiration\nfilesystemadaptor.lastModifiedDate - Absolute last modified time expiration\nfilesystemadaptor.lastModifiedDays - Relative last modified time expiration\n\nValues for the Relative forms of configuration are positive integer\nnumber of days.  For instance:\n   filesystemadaptor.lastAccessedDays\u003d365\nwould expire content that had not been accessed for a year.\n\nValues for the Absolute forms of configuration are ISO8601 date\nonly format strings: yyyy-MM-dd.  For instance:\n   filesystemadaptor.lastModifiedDate\u003d2010-06-01\nwould expire content that had not been modified since the beginning\nof June 2010.\n\nCode Review: http://codereview.appspot.com/96330043\n"
    },
    {
      "commit": "cc553af09b8cb36975e2314bd6372ff0edf775a2",
      "tree": "ae9c0a1d45ef4a01d4b88105367b7fc1ca0acf13",
      "parents": [
        "4ef8f07341a562a4c2e2bebb5e1007ba2f56b5d9",
        "e3f3d673ac638445fd9f3dd590dac947384570ef"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed May 14 17:04:17 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed May 14 17:04:17 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "4ef8f07341a562a4c2e2bebb5e1007ba2f56b5d9",
      "tree": "2162e7c994ecf9a182cd7d9292c36c6c829a1227",
      "parents": [
        "d8cb37ac445fa86aa22731c5367a5e86dde04efa"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed May 14 16:28:23 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed May 14 17:03:20 2014 -0700"
      },
      "message": "Set filesystemadaptor.src default to empty string rather than null.\n\nThis allows init() to throw InvalidConfigurationException if the\nproperty was not set.\n\nCode Review:  http://codereview.appspot.com/91460043\n"
    },
    {
      "commit": "e3f3d673ac638445fd9f3dd590dac947384570ef",
      "tree": "aea727af8384d2adffb49e4241b5ab343cfe27cc",
      "parents": [
        "d973989d7ae6dcddca52196c327794ebe1154ae7"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed May 14 15:04:42 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed May 14 15:04:42 2014 -0700"
      },
      "message": "Updating to use latest library\n"
    },
    {
      "commit": "d973989d7ae6dcddca52196c327794ebe1154ae7",
      "tree": "abda0a9293cc79ae4ebde35ffd7e82af4d7c033e",
      "parents": [
        "d8cb37ac445fa86aa22731c5367a5e86dde04efa"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed May 14 14:58:17 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed May 14 14:58:17 2014 -0700"
      },
      "message": "Updating overview requirements with note about required permissions\n\nThis is a late comment from the code review of adding the \"Permissions\nneeded by the Adaptor\" section.\n"
    },
    {
      "commit": "d8cb37ac445fa86aa22731c5367a5e86dde04efa",
      "tree": "04c1bd9f2b7d1d4b32a24e181e593c15abdb4307",
      "parents": [
        "3148d05c89b7f7b027559fc693864e611a415a99"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Apr 16 13:20:17 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon May 12 17:45:46 2014 -0700"
      },
      "message": "Change FsAdaptor.init IOExceptions and RuntimeExceptions to StartupExceptions\n\nThis forces an abort of the adaptor startup, rather than allowing it\nto be called again with backoff logic.  Some error conditions may\nbe recoverable, so they remain IOExceptions that will trigger a retry.\n\nCode Review:  http://codereview.appspot.com/88040049\n"
    },
    {
      "commit": "3148d05c89b7f7b027559fc693864e611a415a99",
      "tree": "881fc5aa54b2fbc7c7db8755ae0c29a0b0e6d5b0",
      "parents": [
        "1e86c92e824d711b84474e46af009bdf2db17f0c"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri May 09 16:41:07 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri May 09 16:41:07 2014 -0700"
      },
      "message": "Updating lib/plexi to the latest version.\n"
    },
    {
      "commit": "1e86c92e824d711b84474e46af009bdf2db17f0c",
      "tree": "26a3d58ce92cf2cea06b9c9f62d734d2f68cfc35",
      "parents": [
        "013147125cb625432093a6e728a3cb41912dde77"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Fri Apr 25 10:29:43 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Mon May 05 08:18:27 2014 -0700"
      },
      "message": "Fixing JNA test failures\n\nI made changes to the JNA test serialization of the data. This ended up\nfinding a bug in deserialization of DFS_INFO_3 in the adaptor code.\n"
    },
    {
      "commit": "013147125cb625432093a6e728a3cb41912dde77",
      "tree": "0d476c68db2bf0f19c784cd97fd7ca1df85ef4f7",
      "parents": [
        "a469615d074587c436b80c4e83d2f2bc90e6e1dc"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Apr 24 16:13:20 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Apr 24 17:46:39 2014 -0700"
      },
      "message": "Adding note on permissions required to overview guide\n\nAdding a section on the permission required, details on account groups that\ncan be used to grant the required permissions and a link to an MSDN\ndocument with more details.\n"
    },
    {
      "commit": "a469615d074587c436b80c4e83d2f2bc90e6e1dc",
      "tree": "5ef36ef83f87aab2f71606f011c6d9f033480222",
      "parents": [
        "0063de9f59b2f49a49bfae1978b3a24cb8968b2c"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Apr 22 10:45:36 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Apr 23 13:56:40 2014 -0700"
      },
      "message": "Adding note to overview about UNICODE\n\nFor UNICODE characters the adaptor-config.properties file must to saved using\nUTF-8 encoding.\n"
    },
    {
      "commit": "0063de9f59b2f49a49bfae1978b3a24cb8968b2c",
      "tree": "5c2f262f0b751cd97ee4ec08f1039143e3ffbbb1",
      "parents": [
        "84e1977c096332362629739fac278453611f6678"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Tue Apr 22 18:42:14 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Apr 23 12:26:50 2014 -0700"
      },
      "message": "Add Additional tests to WindowsFileDelegateTest\n\nThis adds tests for WindowsFileDelegate.getDfsShareAclView()\nand WindowsFileDelegate.getDfsUncActiveStorageUnc() using\nJNA fakes to simulate the Netapi32Ex DFS calls.\n\nThis brings the WindowsFileDelegate up to 88% coverage and the\nadaptor as a whole to 93% line coverage and 88% branch coverage.\n\nCode Review: http://codereview.appspot.com/90470043\n"
    },
    {
      "commit": "84e1977c096332362629739fac278453611f6678",
      "tree": "5b1a7d775caec1bd442c178a6035aafeaf704691",
      "parents": [
        "5fffcc9783fa80a4d795758aba2f4ca81d61a041"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Mon Apr 21 18:36:14 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Apr 22 10:37:50 2014 -0700"
      },
      "message": "Verify at config adaptor has permission to crawl root\n\nVerify in init() that the adaptor has the required permission to list\nthe contents of the root path.\n"
    },
    {
      "commit": "5fffcc9783fa80a4d795758aba2f4ca81d61a041",
      "tree": "ca19441aeae9ae04a4bfc20146a4a12b19a9cca1",
      "parents": [
        "503f76a6802c7963a0defa7685a1f49e4bb4a787"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Apr 16 17:36:29 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Apr 18 16:55:10 2014 -0700"
      },
      "message": "Refactor WindowsFileDelegate and tests to finish WindowsFileDelegateTest.\n\nThis change refactors WindowsFileDelegate, WindowsFileDelegateTest,\nand WindowsAclFileAttributeViewsTest to enable testing of the rest of\nWindowsFileDelegate.  The refactoring does the following:\n\n- Allows for injection of the Windows JNA and WindowsAclFileAttributeViews\n  implementations into WindowsFileDelegate.\n\n- Extracts Ace, AceBuilder, AccountSid, Serialized DACL construction,\n  temp file management, and TestWindowsAclFileAttributeViews into a base\n  class, TestWindowsAclViews, that can be extended by both\n  WindowsAclFileAttributeViewsTest and WindowsFileDelegateTest.\n\nThis CL is a strict refactoring, and adds no new functionality or tests.\n\nCode Review: http://codereview.appspot.com/88090047\n"
    },
    {
      "commit": "503f76a6802c7963a0defa7685a1f49e4bb4a787",
      "tree": "ea948f835a126b58cf358a65d4d34b2208a98f87",
      "parents": [
        "9677f2de0834184c9761c35e45c7c7d22d7f3e0e"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Apr 10 16:30:38 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Apr 18 16:35:36 2014 -0700"
      },
      "message": "Fix b/13673493: Better warning message if start path is not shared.\n\nCurrently, if a folder on a server is not shared, the adaptor generates\nthe warning:\n\"The path ... is not a valid path. The path does not exist or it is not\n a file or directory.\"\n\nIf a folder on a server is not shared, the adaptor has no idea if it\nexists or not.  This change simply changes the error message slightly:\n\"The path ... is not a valid path. The path does not exist, or it is\n not shared, or it is not a file or directory.\"\n\nThis phrasing leaves open the possibility of supporting local file\nsystems.\n\nCode Review: http://codereview.appspot.com/86630044\n"
    },
    {
      "commit": "9677f2de0834184c9761c35e45c7c7d22d7f3e0e",
      "tree": "b08a863fc2859af108f2f3380e22c02f7d957a85",
      "parents": [
        "e3c37d1f8fe013d2786ea8520b88f80f1515e0d8"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Apr 16 18:08:57 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Apr 16 18:08:57 2014 -0700"
      },
      "message": "Adding check for read Acl in init\n\nAdding code to verify that the adaptor has permission to read the Acl and share\nAcl in init.\n"
    },
    {
      "commit": "e3c37d1f8fe013d2786ea8520b88f80f1515e0d8",
      "tree": "ddb2439be0b27fb1e6d9b8dd67fa05e9c5199b60",
      "parents": [
        "ee01d6ab28f9b58882c34fabd3fcebd7150f66e8"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Apr 09 18:29:15 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Apr 16 13:06:35 2014 -0700"
      },
      "message": "Make Crawling Hidden Files and Folders a Config Option.\n\nThis change adds a configuration option to enable crawling of\nhidden files and folders.  The configuration option is named\n\"filesystemadaptor.crawlHiddenFiles\", and its default value is \"false\".\n"
    },
    {
      "commit": "ee01d6ab28f9b58882c34fabd3fcebd7150f66e8",
      "tree": "381fdab1e450d6b7560b0585cb0d8c99bfb39147",
      "parents": [
        "0b9554dfbd7e775ae3ee340d798257502da67574"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Apr 10 15:36:09 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Apr 10 15:36:09 2014 -0700"
      },
      "message": "Adding use of AsyncDocIdPusher\n\nAdding changes to allow the adaptor so use the AsyncDocIdPusher interface. With\nusing AsyncDocIdPusher, the adaptor will not need the monitor thread pushes the\nchanges to the GSA. Instead, when an file incremental change notification is\nsent to the adaptor, the adaptor will pushed file Records to the\nAsyncDocIdPusher. The library will be managing batching and send the Records to\nthe GSA.\n"
    },
    {
      "commit": "0b9554dfbd7e775ae3ee340d798257502da67574",
      "tree": "9c6ce52a066dcea3da2d95f6bee64a48618fa66d",
      "parents": [
        "22b6a217bcb3dbbad632eecce8b5fece6f4855ea"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Apr 09 14:51:01 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Apr 09 15:18:11 2014 -0700"
      },
      "message": "Fix b/1753517: Hidden Folders should not be crawled.\n\nThis fixes a bug in NioFileDelegate.isHidden().\nIt seems that NIO Files.isHidden(Path) does not consider hidden\nfolders to be hidden.  From the NIO Files javadoc:\n\"On Windows a file is considered hidden if it isn\u0027t a directory\n and the DOS hidden attribute is set.\"\n\nI don\u0027t know why Sun/Oracle decided to exclude hidden directories.\nConsequently, I changed the implementation to use File.isHidden(),\nwhich does pay attention to the hidden attribute on directories.\n\nCode Review: http://codereview.appspot.com/85580045\n"
    },
    {
      "commit": "22b6a217bcb3dbbad632eecce8b5fece6f4855ea",
      "tree": "77d303fc578681388fd390958ea8257a5992470b",
      "parents": [
        "1ea742a1367af17cd230965501045518bdbe98c4",
        "9d6c118405e096d0318a67529351bcb8dcb23f1f"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Apr 03 18:24:10 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Apr 03 18:24:10 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "9d6c118405e096d0318a67529351bcb8dcb23f1f",
      "tree": "f5b76236c5d58635da085924a4d8f9899e312de1",
      "parents": [
        "f980661e7d7620e78dd71079a8c0c025072c63ad"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Apr 03 14:36:16 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Apr 03 14:36:16 2014 -0700"
      },
      "message": "Updating guide with service notes\n\nAdding a command for installing a Windows service for the adaptor and a note\nabout specifying a user for the service.\n"
    },
    {
      "commit": "1ea742a1367af17cd230965501045518bdbe98c4",
      "tree": "35219ebe908bf819caaf4152285baaf56bd75e0e",
      "parents": [
        "f980661e7d7620e78dd71079a8c0c025072c63ad"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Apr 03 00:24:48 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Apr 03 00:48:45 2014 -0700"
      },
      "message": "Add WindowsAclFileAttributeViewsTest (Part 3)\n\nThis final CL adds tests for the getShareAcl() method.  I was forced\nto make WindowsAclFileAttributeViews.Mpr class public and static or\njna.Native complained when I tried to create an annonymous instance of it.\nThis CL also required adding another stub JNA implemenation of Netapi32.\n\nThis brings coverage for WindowsAclFileAttributeViews up to\n96% line coverage and 89% branch coverage.  It brings overall\ncoverage for the adaptor to 84% line coverage and 80% branch\ncoverage.\n\nCode Review: http://codereview.appspot.com/83900043\n"
    },
    {
      "commit": "f980661e7d7620e78dd71079a8c0c025072c63ad",
      "tree": "4dcce8d65f5f9f5134029661bf2f1e6168a5b275",
      "parents": [
        "4860c23f29bc6a31e91405f22bd00da7f22ae809"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Mar 28 15:50:35 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Apr 02 17:43:23 2014 -0700"
      },
      "message": "Add WindowsAclFileAttributeViewsTest (Part 2)\n\nThis change adds support for faking Windows JNA calls\nand uses faked JNA interfaces to test the\nWindowsAclFileAttributeViews.getAclViews() method.\n\nTODO: Add tests for Share ACL, and DFS ACLs.\n\nCode Review: http://codereview.appspot.com/82070043\n"
    },
    {
      "commit": "4860c23f29bc6a31e91405f22bd00da7f22ae809",
      "tree": "371748511c42274bdb738930dcff92dea0b4682e",
      "parents": [
        "98a5c6158ae0f668d54e8a9d8b402217e69c1b82"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Mar 31 13:59:30 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Mar 31 17:34:38 2014 -0700"
      },
      "message": "add new method to mock AdaptorContext\n"
    },
    {
      "commit": "98a5c6158ae0f668d54e8a9d8b402217e69c1b82",
      "tree": "bfee170f424fe933f240b517e60cdde6c449f629",
      "parents": [
        "3c031473f71fd9dc12d3027e7c65833678b5b46b"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Mar 31 13:49:09 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Mar 31 17:34:32 2014 -0700"
      },
      "message": "roll plexi lib forward\n"
    },
    {
      "commit": "3c031473f71fd9dc12d3027e7c65833678b5b46b",
      "tree": "6307704c3c844882c6fbfd98ecc2c13d5661917a",
      "parents": [
        "0bcbe060813deb45a3aa8cc0b5a4c1a1eaf19221"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Mar 31 15:01:32 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Mar 31 17:34:31 2014 -0700"
      },
      "message": "minor documentation edits\n"
    },
    {
      "commit": "0bcbe060813deb45a3aa8cc0b5a4c1a1eaf19221",
      "tree": "b018a71f18bb73b4f22e721f951d2fbc926730e2",
      "parents": [
        "9f1c3ac9f045ec4ecddba290510a3b5d9c30b0a9"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Mar 27 11:28:23 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Mar 27 11:28:23 2014 -0700"
      },
      "message": "Fixing error in createHtmlResponseWriter\n\nThe call to response.setContentType needs to happen while the Response is in the\nREADY state. The call Response.getOutputStream take is out of the READY state.\n"
    },
    {
      "commit": "9f1c3ac9f045ec4ecddba290510a3b5d9c30b0a9",
      "tree": "63d507659c389051246dd7b4efa30ea91899f06a",
      "parents": [
        "73cc2da16a2cbd4199cd24708d050e33598a4434",
        "1c0a9ddc7fad5e787fdc63e9bb73c058abeb3e1d"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Mar 26 15:48:28 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Mar 26 15:48:28 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "73cc2da16a2cbd4199cd24708d050e33598a4434",
      "tree": "63d507659c389051246dd7b4efa30ea91899f06a",
      "parents": [
        "8e145b9705cc3789dd1ce32a8c18fbcc9597d8eb"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Mar 25 15:51:55 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Mar 26 15:45:50 2014 -0700"
      },
      "message": "use version as suffix if user provided version\n"
    },
    {
      "commit": "8e145b9705cc3789dd1ce32a8c18fbcc9597d8eb",
      "tree": "5eb017d9d9610930f5d0dd3d849b1961d737c6f4",
      "parents": [
        "7293220d36c3222ffb35cc8f2c7e18d5609b6722"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Mar 26 14:34:30 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Mar 26 14:34:30 2014 -0700"
      },
      "message": "Synchronizing share Acl pushing\n\ngetModifiedDocIds \u0026 getDocIds can both be called concurrently so pushShareAcls\nneeds to be synchronized when called by both of these since it reads and\nupdates the member variable lastPushedShareAcls.\n"
    },
    {
      "commit": "1c0a9ddc7fad5e787fdc63e9bb73c058abeb3e1d",
      "tree": "091b2cff97f93b1b6df96995ee255ec666d523e2",
      "parents": [
        "7293220d36c3222ffb35cc8f2c7e18d5609b6722"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Mar 25 15:51:55 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Mar 25 15:51:55 2014 -0700"
      },
      "message": "use version as suffix if user provided version\n"
    },
    {
      "commit": "7293220d36c3222ffb35cc8f2c7e18d5609b6722",
      "tree": "d3cba1025a7528ed8d8ab8b44f37507c888502e8",
      "parents": [
        "c2ea7085c5411238fe8fd4e3fb78408c5876b30a",
        "d2620e2b3f9f8420723cb28e993b4c183ab8ae15"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Mar 24 12:03:14 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Mon Mar 24 12:03:14 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "d2620e2b3f9f8420723cb28e993b4c183ab8ae15",
      "tree": "da76822185f3c645512cea9d52db3c21f95adfa2",
      "parents": [
        "fcb0e66d59684b02ed3f5f4b50f9d50c0572c155"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Mon Mar 24 09:59:30 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Mon Mar 24 09:59:30 2014 -0700"
      },
      "message": "Removing the check for READ_ATTRIBUTE if an Acl entry\n\nThe check for READ_ATTRIBUTE permission in not needed for an Acl entry. Windows\nallows reading all of the necessary details needed by the adaptor without this\nREAD_ATTRIBUTE permission. This also fixes a problem where the domain based DFS\nAcl entries were being ignored since the READ_ATTRIBUTE was to being included in\nthe Acl entry details read from Windows.\n"
    },
    {
      "commit": "c2ea7085c5411238fe8fd4e3fb78408c5876b30a",
      "tree": "08e11de6f654cd59e2940dd8dfa7efd167848668",
      "parents": [
        "fcb0e66d59684b02ed3f5f4b50f9d50c0572c155"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Thu Mar 20 16:51:48 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Thu Mar 20 16:51:48 2014 -0700"
      },
      "message": "add more config info to deployment guide including how to see dashboard\n\nA customer recently asked for dashboard port info and\nwanted it in deployment guide.\n\nAlso linking to more configuration info on code site.\n\nMinor change to hilite that ACL aids are for developers.\n"
    },
    {
      "commit": "fcb0e66d59684b02ed3f5f4b50f9d50c0572c155",
      "tree": "0127f8890f1e53bc0bb2a6b17d0f88eae613cea6",
      "parents": [
        "3cb52b90a01b893d664a3e14b843ae9e05fa2b35",
        "a5437e716da454708f0801c1428eaf2c6ee810dc"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Fri Mar 14 15:36:01 2014 -0700"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Mon Mar 17 13:17:17 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs into FixShareAcl2\n\nConflicts:\n\tsrc/com/google/enterprise/adaptor/fs/FsAdaptor.java\n\ttest/com/google/enterprise/adaptor/fs/FsAdaptorTest.java\n"
    },
    {
      "commit": "a5437e716da454708f0801c1428eaf2c6ee810dc",
      "tree": "ca8d8a8ab1f582f1eddc91c41dc165751fb9d550",
      "parents": [
        "1e1cb842df9d1337233aed3d112cc78ba1bf6aa6",
        "74e8673aa2bb46edd05a3777f592c4dffa31750d"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Mar 13 22:01:59 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Mar 13 22:01:59 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "1e1cb842df9d1337233aed3d112cc78ba1bf6aa6",
      "tree": "a74bca2c75e5414fe547060d5a11e432488cf58a",
      "parents": [
        "93a8248ca5d94fd74c3107503f01919e55286bfd"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Mar 13 21:44:58 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Mar 13 21:44:58 2014 -0700"
      },
      "message": "Fix broken WindowsAclFileAttributeViewsTest when run on Windows\n\nThis fixes WindowsAclFileAttributeViewsTest.testNewAclEntryUnresolvableSid().\nThe Ace mock needs to override getSidString().\n"
    },
    {
      "commit": "74e8673aa2bb46edd05a3777f592c4dffa31750d",
      "tree": "e7e0eb006350de4cb537faef520eb160b1ef45c0",
      "parents": [
        "93a8248ca5d94fd74c3107503f01919e55286bfd"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Thu Mar 13 18:53:55 2014 -0700"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Thu Mar 13 18:53:55 2014 -0700"
      },
      "message": "roll plexi lib forward to touch past v4.0.1\n\nactual plexi lib commit id: ed5beb08bde3567428bdb428c4827d6156f09715\n"
    },
    {
      "commit": "93a8248ca5d94fd74c3107503f01919e55286bfd",
      "tree": "eede7b8bc6b033d6410c7b56450ea528da4e2aa4",
      "parents": [
        "d73320bea856dd742438f34506fe9d769bd983d6"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Mar 12 21:03:38 2014 -0700"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Mar 13 09:22:29 2014 -0700"
      },
      "message": "Add WindowsAclFileAttributeViewsTest (Part 1)\n\nThis adds WindowsAclFileAttributeViewsTest that only tests\nthe newAclEntry() method.\n\nCode Review: http://codereview.appspot.com/75170044\n"
    },
    {
      "commit": "d73320bea856dd742438f34506fe9d769bd983d6",
      "tree": "d70f19fff35f9b60f44b604feaaae8dd83dba7ac",
      "parents": [
        "2b7dff826794e1044bdf06b96d236b3e600a2138"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon Jan 06 18:07:23 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Mar 07 14:20:11 2014 -0800"
      },
      "message": "Add FsAdaptorTest and supporting test infrastructure\n\nThis adds unit tests for the FsAdaptor class, including a bunch\nof supporting test classes.  The changes include:\n\nFsAdaptorTest: 49 Unit tests for FsAdaptor class\nFsAdaptor: Added a test constructor that takes a FileDelegate arg, made some\n    methods and inner classes VisibleForTesting\nHtmlResponseWriter: Fixed array bounds exception for unix paths\nMockFile: A lightweight, in-memory file system\nMockFileTest: Sanity checks for MockFile\nMockFileDelgate: A FileDelegate backed by MockFiles\nMockFileDelegateTest: Sanity checks for MockFileDelegate\nMockAdaptorContext: A AdaptorContext wrapping AccumlatingDocIdPusher\nMockRequest: A trivial Request implementation\nMockResponse: A Response that supports only the features used by the adaptor\nAccumulatingDocIdPusher: Imported from SP adaptor and heavily modified\nUnsupportedDocIdPusher: Parent class of AccumulatingDocId pusher\nMockDocIdCodec: Imported from adaptor framework tests\n\nThese unit tests provide 91% code coverage for the FsAdaptor class.\n\nCode Review: https://codereview.appspot.com/58560043/\n"
    },
    {
      "commit": "2b7dff826794e1044bdf06b96d236b3e600a2138",
      "tree": "180fc404653c86ea4b0a00ca764e195a3a57cbf0",
      "parents": [
        "cc19feea8b748aa33f12c061d51e01cebb7787d8"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon Jan 06 17:52:11 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Mar 07 14:20:11 2014 -0800"
      },
      "message": "FsAdaptorTest\n"
    },
    {
      "commit": "cc19feea8b748aa33f12c061d51e01cebb7787d8",
      "tree": "3b617f68f6ae99c8e50690f563c847c613929a6b",
      "parents": [
        "40c0a57b683ce17f0fbb48ec7e9cd1b76974fa70"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Dec 20 17:47:03 2013 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Mar 07 14:20:11 2014 -0800"
      },
      "message": "Adding MockFileDelegate and MockFile\n\nThe purpose of these classes is to allow construction of\nin-memory file system structure with configuration of the\nfiles and directories to suit the tests that will be performed.\n\nMockFile represents a file or directory.  It has many setters\nthat allow the tests to define the file\u0027s properties and\nconfiguration.\n\nMockFileDelegate is a FileDelegate implementation over the\nin-memory file system consisting of MockFiles.\n\nCode Review: https://codereview.appspot.com/47730043/\n"
    },
    {
      "commit": "40c0a57b683ce17f0fbb48ec7e9cd1b76974fa70",
      "tree": "f80db2ddb5a391bcac5a27cbc2cc5f9bd2960142",
      "parents": [
        "46314df386a4ada79d889c6ea8d8aec6e317cd0e"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Feb 21 13:08:34 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Feb 28 17:49:05 2014 -0800"
      },
      "message": "Refactor WindowsAclFileAttributeViews for testability.\n\nUse Dependency Injection of various Windows APIs so that\nMock or Fake implementations may be supplied for the tests.\n"
    },
    {
      "commit": "46314df386a4ada79d889c6ea8d8aec6e317cd0e",
      "tree": "e412dfa01d00345c3674824b8aecf58f41501c6b",
      "parents": [
        "6064a3b965d3677a9af30d68b4ce39d88ed3cf6d"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Feb 27 16:15:34 2014 -0800"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Feb 27 16:21:29 2014 -0800"
      },
      "message": "Fixing test short file name failures\n\nSome of the tests were mixing the usage of short files names and long file\nnames. This was caused by using \".toPath().toString()\". I changed the tests to\nuse \".toPath().toRealPath().toString()\".\n"
    },
    {
      "commit": "3cb52b90a01b893d664a3e14b843ae9e05fa2b35",
      "tree": "e7653e5c3f41f5b9676c083612884ef86858778a",
      "parents": [
        "6064a3b965d3677a9af30d68b4ce39d88ed3cf6d"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Feb 25 16:57:33 2014 -0800"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Feb 26 15:37:48 2014 -0800"
      },
      "message": "Fixing incremental feed of share Acl and DFS share Acl\n"
    },
    {
      "commit": "6064a3b965d3677a9af30d68b4ce39d88ed3cf6d",
      "tree": "beb8e7c2a005811d907367c243d4c1740cc69bc3",
      "parents": [
        "3224d65162f823fbba9cf0fc17a420f8820efef6",
        "920b11a274e8a2446fd32cdfb06882945b88f649"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Feb 20 10:49:53 2014 -0800"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Feb 20 10:49:53 2014 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs into OverviewImages\n"
    },
    {
      "commit": "920b11a274e8a2446fd32cdfb06882945b88f649",
      "tree": "c101095f637f56ccaf5e8954507df3dc59668d67",
      "parents": [
        "6c240cdb1d41a13ec6c889c31c438d7aa444387b"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Feb 07 13:53:42 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Feb 14 15:26:47 2014 -0800"
      },
      "message": "Add WindowsFileDelegateTest\n\nThis adds a basic WindowsFileDelegateTest.  It tests newDocId() and\nmost file system monitor functions using the local file system.\nIt only runs on Windows.\n\nThis change adds a startSignal CountDownLatch that the monitor uses\nto signal that the monitor is actively listening for changes, and\nstartMonitorPath() waits for the monitor thread to be up and running\nbefore returning.\n\nTODO: Add tests for ACL features.\nTODO: Add tests for DFS features.\n\nCode Review: https://codereview.appspot.com/57170048/\n"
    },
    {
      "commit": "6c240cdb1d41a13ec6c889c31c438d7aa444387b",
      "tree": "6cf0f1026d54974c1136343e2bae0f92f9c43aaa",
      "parents": [
        "2de0df59494e5c2614638846b43c02ae176e36c0"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Tue Feb 04 11:02:59 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon Feb 10 19:05:38 2014 -0800"
      },
      "message": "Extract inheritFrom and inheritanceType handling from AclBuilder.\n\nThis removes inheritFrom and inheritanceType handling from\nAclBuilder and moves that responsibility to FsAdaptor, which\nhas knowledge of ACL inheritance structure.  This refactoring\nchanges the API to the AclBuilder methods used: eliminating\nmost passed parameters, and returning a partial populated\nAcl.Builder instead of a fully constructed Acl.  This also\nrequires significant changes to AclBuilderTest.\n\nCode Review: https://codereview.appspot.com/54820046/\n"
    },
    {
      "commit": "3224d65162f823fbba9cf0fc17a420f8820efef6",
      "tree": "5e46dd8e4e6dc252f1b6c789286f753eec1baa63",
      "parents": [
        "2de0df59494e5c2614638846b43c02ae176e36c0"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Feb 06 09:45:05 2014 -0800"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Feb 06 09:45:05 2014 -0800"
      },
      "message": "Updating Acl inheritance overview images\n\nCleaning up the un-needed white space in the Acl inheritance images\n"
    },
    {
      "commit": "2de0df59494e5c2614638846b43c02ae176e36c0",
      "tree": "9477d3d36cd7992fcbe4525bf5f6d7562a79a1f3",
      "parents": [
        "f2c17373b2905642ecc6c166bb716520a5feeadb"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Thu Jan 30 21:38:27 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Tue Feb 04 16:58:43 2014 -0800"
      },
      "message": "Add NioFileDelegateTest\n\nCode Review: https://codereview.appspot.com/58930043/\n"
    },
    {
      "commit": "f2c17373b2905642ecc6c166bb716520a5feeadb",
      "tree": "751dc00c0c15d5e9f84cac0e5b8b39d52e3e6846",
      "parents": [
        "d1e192a585e30a6dea3f74ce31d08a4a9fcf49a8"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Jan 24 10:14:24 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Jan 24 10:14:24 2014 -0800"
      },
      "message": "Set contentType to text/html response when creating HtmlResponseWriter. Code Review: http://codereview.appspot.com/56690043\n"
    },
    {
      "commit": "d1e192a585e30a6dea3f74ce31d08a4a9fcf49a8",
      "tree": "02dbbeaf2336dc3ba89702675006bf78e04c3285",
      "parents": [
        "d58166c9578e836943282b99995d89b140e5e1c7",
        "560eba15aebb1f4430146699dbeb6b7046d22faf"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jan 22 17:38:45 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jan 22 17:38:45 2014 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of https://code.google.com/p/plexi.fs\n"
    },
    {
      "commit": "d58166c9578e836943282b99995d89b140e5e1c7",
      "tree": "796fe27a45688c078d58b98e1736cdb9ee66850d",
      "parents": [
        "4aece467a5f89e8e96e7eab8043357cec4ad6802"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jan 22 16:56:37 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Jan 22 16:56:37 2014 -0800"
      },
      "message": "Eliminate override warning when configuring adaptor.namespace. Code Review: http://codereview.appspot.com/54450045\n"
    },
    {
      "commit": "560eba15aebb1f4430146699dbeb6b7046d22faf",
      "tree": "9526fdce60de7656f200cf276d0505fc6f3a3ed5",
      "parents": [
        "6b3b8f4750de0f70e9678b1ebccbfc845e61d40b"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Jan 21 13:40:57 2014 -0800"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Jan 21 13:40:57 2014 -0800"
      },
      "message": "re-add mistakenly removed offerPath when handling change detection.\n"
    },
    {
      "commit": "6b3b8f4750de0f70e9678b1ebccbfc845e61d40b",
      "tree": "feb0ed98a71a8eead72d04976ffaa618cffb7307",
      "parents": [
        "4aece467a5f89e8e96e7eab8043357cec4ad6802"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Jan 21 13:38:59 2014 -0800"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Tue Jan 21 13:38:59 2014 -0800"
      },
      "message": "bring plexi lib version to v4.0.0\n"
    },
    {
      "commit": "4aece467a5f89e8e96e7eab8043357cec4ad6802",
      "tree": "6bd0bb8dc68bcd5b6232a1abbf001e5ffda77715",
      "parents": [
        "e5dca563bd9d101f6931361d182dfa63e454c89a"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon Jan 13 17:46:17 2014 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon Jan 13 17:53:46 2014 -0800"
      },
      "message": "Fix Cobertura intrumentation to include the adaptor clone jar in the classpath.\n\nOtherwise instrumentation complains that it cannot find adaptor\nframework classes.\n\nCode Review: http://codereview.appspot.com/51800043\n"
    },
    {
      "commit": "e5dca563bd9d101f6931361d182dfa63e454c89a",
      "tree": "cca7153f3c4bca88ae7fe5fb1d4f52882657c061",
      "parents": [
        "437b359e9cac44f2c5d4af3e3e69b98d3287bf9e"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Nov 27 12:00:53 2013 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Mon Jan 13 17:34:48 2014 -0800"
      },
      "message": "Add AclBuilderTest\n\nCode Review: https://codereview.appspot.com/35900047/\n"
    },
    {
      "commit": "437b359e9cac44f2c5d4af3e3e69b98d3287bf9e",
      "tree": "5ee9170cdacc3f4fc8fecd235e97c4a602cd0015",
      "parents": [
        "258bf12cf1d7706ee9c75cada0e47b5d4eeba154"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Jan 08 17:17:13 2014 -0800"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Jan 08 17:17:13 2014 -0800"
      },
      "message": "Fix for FileNotFound exception when file is missing\n\nReverting the use of toRealPath back to getCanonical file and File.get().\nI also changed the initialization of getDocumentContent to only call\nisHidden after first confirming that the file actually excists.\n"
    },
    {
      "commit": "258bf12cf1d7706ee9c75cada0e47b5d4eeba154",
      "tree": "054109ffe8ca9a19dac2b874f7d015f48a72a604",
      "parents": [
        "35162c036fb5e3725ee0811091be3eec5c598c9e"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Jan 07 13:18:30 2014 -0800"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Tue Jan 07 13:18:30 2014 -0800"
      },
      "message": "Fix for b/12423037 - Exception while calling getDocContent\n\nChanging Path.getFileName() to use Path.toFile() since Path.getFileName() fails\nfor UNC paths.\n"
    },
    {
      "commit": "35162c036fb5e3725ee0811091be3eec5c598c9e",
      "tree": "9ac216fb5b5bdfab3d59cca385f45269f72b6485",
      "parents": [
        "1f95f3038e965bb33e4e17eb4526d439b162f0ef"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jan 03 18:29:20 2014 -0800"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jan 03 18:29:20 2014 -0800"
      },
      "message": "update FsAdaptor class documentaiton to reflect maturation\n"
    },
    {
      "commit": "1f95f3038e965bb33e4e17eb4526d439b162f0ef",
      "tree": "901ec2b3ac09f1f49cc5e3e722110b9ac5039370",
      "parents": [
        "d746ff622039606028c58c242e44d4c0e0a3241b"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jan 03 16:54:14 2014 -0800"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jan 03 16:54:14 2014 -0800"
      },
      "message": "invert documention on filter method to match behaviour\n"
    },
    {
      "commit": "d746ff622039606028c58c242e44d4c0e0a3241b",
      "tree": "843823d9fe60f24a81cdea6bcab8eb5e406467b2",
      "parents": [
        "0fafb5495974646c069ae0ef0db05c885088f4cd"
      ],
      "author": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jan 03 14:27:43 2014 -0800"
      },
      "committer": {
        "name": "PJ",
        "email": "pjo@google.com",
        "time": "Fri Jan 03 14:27:43 2014 -0800"
      },
      "message": "have own junit instead of using plexi\u0027s\n\njunit is not part of plexi lib binary. junit\nis needed to carry out 4.0.0 release build.\nso putting it inside of lib\n"
    },
    {
      "commit": "0fafb5495974646c069ae0ef0db05c885088f4cd",
      "tree": "a26d73d50bbf01706baa78d63fe9e241e7012e34",
      "parents": [
        "ff8940f7647fac17728144383c159d74303d4081"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Jan 02 13:24:33 2014 -0800"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Jan 02 13:24:33 2014 -0800"
      },
      "message": "Updating newDocId to follow links.\n\nIt\u0027s prefered that newDocId follow links to since, if some reason, the\npath is a link we will generate an ID for the linked target file. This\nwould happen if the file was deleted and a link created after an initial\ncrawl. In this instance, newDocId would generate a DocId that is different\nfrom the DocId already sent to the GSA which would cause the FS adaptor to\nlog a message and skip this file.\n"
    },
    {
      "commit": "ff8940f7647fac17728144383c159d74303d4081",
      "tree": "575bc542048919caa260d4397255c5e4a3d71dad",
      "parents": [
        "5a0c9f9858cdde517a93b71af33c344e2ce3e059"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Thu Dec 12 15:48:12 2013 -0800"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Fri Dec 20 20:02:42 2013 -0800"
      },
      "message": "Fixing share Acl for domain-based DFS\n\nDomain-based DFS and stand-alone DFS security descriptors are stored differently.\nFor domain-based DFS namespaces, the security descriptor is stored in Active Directory.\nFor stand-alone DFS namespaces, the security descriptor is stored on the stand-alone server.\n"
    },
    {
      "commit": "5a0c9f9858cdde517a93b71af33c344e2ce3e059",
      "tree": "000565e0074f8fe1e1ce144aa110bf55d5347080",
      "parents": [
        "33c0dd82c979fec08c1dbeab1edec8b5483574f6"
      ],
      "author": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Wed Dec 11 18:25:02 2013 -0800"
      },
      "committer": {
        "name": "Brett Johnson",
        "email": "Brett.Michael.Johnson@gmail.com",
        "time": "Fri Dec 13 17:36:46 2013 -0800"
      },
      "message": "Don\u0027t crawl hidden files or directories.\n\nThis change avoids crawling hidden files or directories.\n\nWhen crawling a directory, hidden files and subdirectories\nare still included in the returned content listing, however\nsubsequent attempts to crawl them will return not found.\n\nThis change also verifies that the requested file/folder\ndoes not reside within a hidden ancester directory.\n\nCode Review: http://codereview.appspot.com/39390046\n"
    },
    {
      "commit": "33c0dd82c979fec08c1dbeab1edec8b5483574f6",
      "tree": "efc8af124678ee06fcba46ccbeb0ad6656f6a612",
      "parents": [
        "1dc44f420a6071bc836d4a695d3dec750551640b"
      ],
      "author": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Dec 11 13:26:17 2013 -0800"
      },
      "committer": {
        "name": "Miguel Fernandez",
        "email": "mifern@google.com",
        "time": "Wed Dec 11 13:26:17 2013 -0800"
      },
      "message": "Adding note about read permission for reseting last access date.\n"
    }
  ],
  "next": "1dc44f420a6071bc836d4a695d3dec750551640b"
}
