Update git submodules
Update git submodules

* Update plugins/replication from branch 'master'
  to e77f34ba242629059720a1b60aeebe663171d9ca
  - Merge branch 'stable-3.3' into master
    
    * stable-3.3: (23 commits)
      Move shouldCleanupBothTasksAndLocks* ITs to ReplicationStorageIT
      ReplicationStorageIT: Wait for all pushes without order
      Replication*IT: Share getRef method
      ReplicationFanoutIT: Share setReplicationDestination
      ReplicationFanoutIT: Split shouldReplicateNewBranch tests
      ReplicationFanoutIT: Remove generic waitUntil helper
      ReplicationFanoutIT: Inherit from ReplicationDaemon
      ReplicationFanoutIT: Refactor setRemoteReplicationDestination
      ReplicationFanoutIT: Rename setReplicationDestination
      ReplicationFanoutIT: Cleanup shouldCreateIndividualReplicationTasksForEveryRemoteUrlPair
      Move shouldCleanupTasksAfterNewProjectReplication test
      Fix documentation issue
      Move storage portion of replicateBranchDeletion ITs
      Refactor Replication*IT tests to share a base class
      ReplicationIT: Add shouldMatch* e2e tests
      ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT
      ReplicationTasksStorage: Add multi-primary unit tests
      ReplicationTasksStorage: Add multi-primary unit tests
      ReplicationStorageIT: Add shouldFire*ChangeRefs tests
      Move storage-based ITs into ReplicationStorageIT
      ...
    
    Change-Id: Ie32364ed45f4d19467fc8fd529290d62275698e2
    
  - Merge branch 'stable-3.3' into master
    
    * stable-3.3:
      Don't output directories during task walk.
    
    Change-Id: I022563e4fc002921524a31bdca7793e45c9bbe59
    
  - Merge branch 'stable-3.2' into stable-3.3
    
    * stable-3.2: (23 commits)
      Move shouldCleanupBothTasksAndLocks* ITs to ReplicationStorageIT
      ReplicationStorageIT: Wait for all pushes without order
      Replication*IT: Share getRef method
      ReplicationFanoutIT: Share setReplicationDestination
      ReplicationFanoutIT: Split shouldReplicateNewBranch tests
      ReplicationFanoutIT: Remove generic waitUntil helper
      ReplicationFanoutIT: Inherit from ReplicationDaemon
      ReplicationFanoutIT: Refactor setRemoteReplicationDestination
      ReplicationFanoutIT: Rename setReplicationDestination
      ReplicationFanoutIT: Cleanup shouldCreateIndividualReplicationTasksForEveryRemoteUrlPair
      Move shouldCleanupTasksAfterNewProjectReplication test
      Fix documentation issue
      Move storage portion of replicateBranchDeletion ITs
      Refactor Replication*IT tests to share a base class
      ReplicationIT: Add shouldMatch* e2e tests
      ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT
      ReplicationTasksStorage: Add multi-primary unit tests
      ReplicationTasksStorage: Add multi-primary unit tests
      ReplicationStorageIT: Add shouldFire*ChangeRefs tests
      Move storage-based ITs into ReplicationStorageIT
      ...
    
    Change-Id: I81a167ccb77738984069d9433fde75ee7cf06c8e
    
  - Move shouldCleanupBothTasksAndLocks* ITs to ReplicationStorageIT
    
    These tests are focused on verifying storage functionality. Improve them
    slightly to use the best practices from ReplicationStorageIT.
    
    Change-Id: I66cf87e63c88f040d328793012a4dbf4de7e031e
    
  - Merge branch 'stable-3.1' into stable-3.2
    
    * stable-3.1:
      ReplicationStorageIT: Wait for all pushes without order
      Replication*IT: Share getRef method
      ReplicationFanoutIT: Share setReplicationDestination
      ReplicationFanoutIT: Split shouldReplicateNewBranch tests
      ReplicationFanoutIT: Remove generic waitUntil helper
      ReplicationFanoutIT: Inherit from ReplicationDaemon
      ReplicationFanoutIT: Refactor setRemoteReplicationDestination
      ReplicationFanoutIT: Rename setReplicationDestination
      ReplicationFanoutIT: Cleanup shouldCreateIndividualReplicationTasksForEveryRemoteUrlPair
      Move shouldCleanupTasksAfterNewProjectReplication test
      Move storage portion of replicateBranchDeletion ITs
      Refactor Replication*IT tests to share a base class
      ReplicationIT: Add shouldMatch* e2e tests
      ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT
      ReplicationTasksStorage: Add multi-primary unit tests
      ReplicationTasksStorage: Add multi-primary unit tests
      ReplicationStorageIT: Add shouldFire*ChangeRefs tests
      Move storage-based ITs into ReplicationStorageIT
      ReplicationTasksStorage.Task: Add multi-primary unit tests
      ReplicationQueue: Remove unused method
    
    Cleanup specific to stable-3.2 will be done in follow-up changes.
    
    Change-Id: Ib938c661158e8f7a3434010187b87c79e81a01b8
    
  - Merge branch 'stable-3.0' into stable-3.1
    
    * stable-3.0:
      ReplicationStorageIT: Wait for all pushes without order
      ReplicationTasksStorage: Add multi-primary unit tests
    
    Change-Id: I3961368f7bcf7d4aa923d07f7f89beeaaeb307d3
    
  - Merge "ReplicationTasksStorage.Task: Add multi-primary unit tests" into stable-3.1
  - Merge branch 'stable-2.16' into stable-3.0
    
    * stable-2.16:
      ReplicationStorageIT: Wait for all pushes without order
      ReplicationTasksStorage: Add multi-primary unit tests
    
    Change-Id: I1d749621c189ee2e49f092ddc7558f83e508411f
    
  - ReplicationStorageIT: Wait for all pushes without order
    
    Some tests don't have a predefined order for which events will be
    replicated first. Using a timeout based on a single replication event is
    flawed when we don't know the expected order. Instead, use a timeout for
    the group of events and ignore the order.
    
    For two events replicating to a single remote with a single thread, we
    expect the complete replication to take twice as long. Two events
    replicating to two remotes will use one thread each and therefore not
    take any longer than the single remote case.
    
    Change-Id: Ieb21b7eee32105eab5b5a15a35159bb4a837e363
    
  - Replication*IT: Share getRef method
    
    This helper is common to a couple test classes, so share it.
    
    Change-Id: I5839c31ad734c384e812e9e1c7bcba8ba05c23cc
    
  - ReplicationFanoutIT: Share setReplicationDestination
    
    Refactor setReplicationDestination to share the per-remote-file and
    single replication config file implementations more.
    
    Change-Id: Ic0a98ccf0f7703f14c01856a42b8a70e3d20aa8b
    
  - ReplicationFanoutIT: Split shouldReplicateNewBranch tests
    
    Split these into storage-based and e2e tests so that the storage tests
    can be reliably verified through use of replicationDelay large enough
    that task state on disk doesn't change during the tests.
    
    Keep them all in ReplicationFanoutIT for now since the setup for these
    tests is unique to that class.
    
    Also remove the unnecessary cleanup of tasks.
    
    Change-Id: I36e0a4affe1f5d1330ea27a496fd8ba295176763
    
  - ReplicationFanoutIT: Remove generic waitUntil helper
    
    Using a non-specific timeout is a bad pattern. Tests should pick a
    timeout appropriate to the action being tested.
    
    Change-Id: I69a7e469df1dc532af6a777ac47d89852091797e
    
  - ReplicationFanoutIT: Inherit from ReplicationDaemon
    
    Reduces duplication across the replication IT classes. More dedup is
    possible with the helper methods, but leave that for a future change.
    
    Change-Id: Iddd6dca9a4fe84b065954cd4dcec7289d7ed68a2
    
  - ReplicationFanoutIT: Refactor setRemoteReplicationDestination
    
    Simplify callers by providing a way to set the replicationDelay up
    front.
    
    Change-Id: I28cea83559aa1eb379ec2ff962a0beaf25fe4ca6
    
  - ReplicationFanoutIT: Rename setReplicationDestination
    
    Distinguish the methods that set the per-remote config files vs the
    methods that set the global replication.config. This helps lead up to
    ReplicationFanoutIT inheriting from ReplicationDaemon.
    
    Change-Id: I6139d2dbde15c0b0449d7d7801c169253bc7449d
    
  - ReplicationFanoutIT: Cleanup shouldCreateIndividualReplicationTasksForEveryRemoteUrlPair
    
    Remove some dead code, use Integer.MAX_VALUE for the replicationDelay so
    that tasks stay in the waiting/ area of storage for the entire test, and
    use a dedicated listWaitingTasks() to show it only depends on tasks in
    that state.
    
    Change-Id: I0035a4edc656ed4833249322c45204124a66e20d
    
  - Merge changes I0ef708ab,I81d27fd4 into stable-3.1
    
    * changes:
      Move shouldCleanupTasksAfterNewProjectReplication test
      Merge branch 'stable-3.0' into stable-3.1
    
  - Merge "ReplicationTasksStorage: Add multi-primary unit tests" into stable-3.1
  - Merge "ReplicationTasksStorage: Add multi-primary unit tests" into stable-2.16
  - Move shouldCleanupTasksAfterNewProjectReplication test
    
    This test is focused on the storage level, so move it to
    ReplicationStorageIT. Slightly improve it to use the new best practices
    for specifying test timeouts.
    
    Change-Id: I0ef708ab7813ee09d6f115d3151d2d12b9984a80
    
  - Merge branch 'stable-3.0' into stable-3.1
    
    * stable-3.0:
      Move storage portion of replicateBranchDeletion ITs
      Refactor Replication*IT tests to share a base class
      ReplicationIT: Add shouldMatch* e2e tests
      ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT
      ReplicationStorageIT: Add shouldFire*ChangeRefs tests
      Move storage-based ITs into ReplicationStorageIT
      ReplicationQueue: Remove unused method
    
    This change does not try to reimpose the breakdown of tests that was
    done in 3.0. That will be done in follow up change(s) to improve
    reviewability of this change.
    
    Change-Id: I81d27fd47da8eecad3aca36d8e6400679fb564a3
    
  - Fix documentation issue
    
    Task sharding was removed in a revert previuosly but the
    documentation was still pointing to it. Fixed it to reflect
    the current logic.
    
    Change-Id: If888518a2485a72c6a692aa377bdab1fb1b8cd75
    
  - Move storage portion of replicateBranchDeletion ITs
    
    All other ITs split e2e and storage tests on stable-2.16, so this change
    only updates the new replicateBranchDeletion tests that were added in
    stable-3.0.
    
    The e2e check for if the destination branch is removed or not stays in
    ReplicationIT and the check that a task is created in storage when the
    branch delete API is invoked moves to ReplicationStorageIT.
    
    This split allows the best practices for verifying e2e and storage to be
    applied independently.
    
    Change-Id: Iec7ee090bd614e3442b1f9cb454437c9e05290be
    
  - Merge branch 'stable-2.16' into stable-3.0
    
    * stable-2.16:
      Refactor Replication*IT tests to share a base class
      ReplicationIT: Add shouldMatch* e2e tests
      ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT
      ReplicationStorageIT: Add shouldFire*ChangeRefs tests
      Move storage-based ITs into ReplicationStorageIT
      ReplicationQueue: Remove unused method
    
    This change does not try to reimpose the breakdown of tests that was
    done in 2.16. That will be done in follow up change(s) to improve
    reviewability of this change.
    
    Change-Id: I83202997610c5ad0d8849cb477ca36db8df760f5
    
  - Refactor Replication*IT tests to share a base class
    
    These classes have very similar setups and duplicate helper methods.
    Improve maintainability by reducing the duplication.
    
    ReplicationQueueIT is not modified because it is merged into
    ReplicationIT on stable-3.0.
    
    Change-Id: Ibc22ae4d0db2d09009f65c0e745f1095c67827ba
    
  - ReplicationIT: Add shouldMatch* e2e tests
    
    These new tests utilize creating a branch in a way that does not trigger
    replication so that scheduleFullSync() is responsible for replicating
    the update. In this way, the tests verify the destination receives the
    update because scheduleFullSync() matched the given URI.
    
    Change-Id: I4ae15d0301a308a12cbca3684915e89ca421e02f
    
  - ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT
    
    These tests are focused on verifying storage, so they belong in
    ReplicationStorageIT. Improve these tests to better verify storage
    correctness by switching the 'now' parameter to false such that
    replicationDelay is honored and follow the ReplicationStorageIT
    pattern using a very long delay. These improvements make these tests
    much more stable.
    
    The tests improve the ref matching slightly by comparing to the
    PushOne.ALL_REFS constant.
    
    Also removes the disableDeleteForTesting flag as there are no users of
    it now.
    
    A later change can add ReplicationIT e2e tests for these use cases.
    
    Change-Id: Iaa14a7429a40fb62325259efa1c7d7637deef95a
    
  - ReplicationTasksStorage: Add multi-primary unit tests
    
    These tests examine the replication scenarios under
    multi-primary setup making use of the api calls present
    in ReplicationTasksStorage class similarly as done in
    single primary setup.
    
    These tests ensure that the replication compatability in
    multi-primary setup is not broken.
    
    Change-Id: Ib2d0017c4d2ac3f4cfc7262b68b09a3a357e1337
    
  - ReplicationTasksStorage: Add multi-primary unit tests
    
    These tests examine the replication scenarios under multi-primary
    setup making use of the api calls present in ReplicationTasksStorage
    class similarly as done in single primary setup.
    
    These tests ensure that the replication compatibility in multi-primary
    setup is not broken.
    
    Change-Id: I375b731829f3c0640d3a7a98635e1e5c526908ca
    
  - Merge "ReplicationTaskStorage: Improve test coverage for isWaiting()" into stable-3.2
  - ReplicationStorageIT: Add shouldFire*ChangeRefs tests
    
    Copy the shouldFire*IncompleteUri tests as shouldFire*ChangeRefs to
    fill a gap in test coverage.
    
    Change-Id: Ia8df64a8574b776e6a9f7201c0862f1e6794687e
    
  - Move storage-based ITs into ReplicationStorageIT
    
    Tests in ReplicationStorageIT utilize very long replication delays such
    that tasks are never expected to complete during the test. This allows
    test writers to assume the task files are still there.
    
    Refactor tests from ReplicationIT into ReplicationStorageIT and focus
    them on verifying storage correctness. This is mostly a direct copy
    except that shouldFirePendingOnlyToStoredUri gets renamed and split into
    two tests. One that validates tasks are fired and another that validates
    replication completes to the expected destinations. This split is
    necessary because of the very long delay methodology mentioned above.
    
    Code sharing between ReplicationIT and ReplicationStorageIT will be
    improved in a later commit.
    
    Change-Id: I41179c20a10354953cff3628368dfd5f910cc940
    
  - Don't output directories during task walk.
    
    Outputting directories leads to extra exceptions when trying to read
    tasks, prevent outputting them in the first place.  Not only will this
    prevent bogus log warnings, it should be faster since there is now less
    work to do. Remove the unreliable warning filter during task
    deserialization since it should no longer be needed in the normal path
    now.
    
    Change-Id: I6fa2bdc27ce37333299f7ce475bb77d5c1de1d0b
    Bug: Issue 13480
    
  - ReplicationTasksStorage.Task: Add multi-primary unit tests
    
    These tests examine the replication scenarios under
    multi-primary setup making use of the api calls present
    in ReplicationTasksStorage.Task class similarly as done in
    single master setup.
    
    These tests ensure that the replication compatability in
    multi-primary setup is not broken.
    
    Change-Id: I980e8286bf11d31c6ab89e49ef065fdde1118181
    
  - ReplicationQueue: Remove unused method
    
    And drop the misleading @VisibleForTesting annotation from the method
    the removed method was wrapping. scheduleFullSync() is public so that
    PushAll can call it.
    
    Change-Id: I0139e653654fcaf20de68dddfb5ea85560a323d0
    
  - ReplicationTaskStorage: Improve test coverage for isWaiting()
    
    Add test cases to ReplicationTasksStorage.isWaiting() and
    ReplicationTasksStorage.Task.isWaiting() methods. Also modify
    existing testcases to use these new methods.
    
    Change-Id: I032fb80a606a71bc3911d9ecb26ed738f074051f
    
GerritCodeReview/gerrit,GerritCodeReview/gerrit,GerritCodeReview/gerrit,GerritCodeReview/gerrit,GerritCodeReview/gerrit,GerritCodeReview/gerrit,GerritCodeReview/gerrit,GerritCodeReview/gerrit