Add extension point to register JGit PreUploadHooks

Plugins may want to get notified before an upload pack is sent.
For example, a plugin may want to monitor repository usage.

Change-Id: Ie1e82da47dc3906ef3da87dfbd0b583ebeecbef1
Add UploadValidationListener extension point.

Add pre-upload extension point to allow plugins to validate upload
operations right before Gerrit begins to send a pack back to the git
client.

A plugin can interrupt the upload by throwing an exception which will
cause the upload to fail and the exception’s message text will be
reported to the git client.

For example, a plugin may want to deny fetches for a specific project.

Change-Id: I5d0aeac51b83bf14150fa3036f71965cf2051243
Replace "display name in review category" preference with a list of options

Gerrit has a preference to show names in label columns on gerrit dashboards.
This is a nice feature however it limits what options can be displayed on
the columns.  For example some users have very long names which takes
up too much screen real estate to display.  It would be nice to allow
users to select an alternative to the user's name, maybe just their
abbreviations?

This change replaces the single checkbox to "display person name in review
category" with a selection list of alternative options.

This change provides the following options:
 * None (default)
 * Show Name
 * Show Email
 * Show Abbreviation

Also this change will make it easier to add additional options for this
preference in the future.

Feature: issue 2628
Change-Id: I8858147cfd5513b8c7bcc9d199c1ed7a8a70dcd5
Merge "Fix possible infinite loop in ScheduleConfig"
Fix possible infinite loop in ScheduleConfig

A missing interval key in the Config will cause an infinite loop when
computing the initialDelay as a while loop will keep adding a negative
value (the MISSING_CONFIG = -1) to the startTime expecting it to move in
the future until it passes the now. However, it will keep moving in the
past.

Don't even try to compute the initialDelay when the interval is missing.

Change-Id: Ia18d8709a47cc53f445a076ed873efe6b797710b
ScheduleConfig: compute delay without using loops

Also make the computation of the delay for the case "start < now"
consistent with the case "now < start" i.e. make sure that the
computed delay is never zero.

Change-Id: I807637fdaf209f8a3b7e7a04d3504809ee591a07
ScheduleConfig: make the startTime and interval keys configurable

To make the ScheduleConfig better (re)usable the Config keys have
to be configurable. The default keys "startTime" and "interval"
will not be a perfect choice for every scenario. For example, if a
plugin wants to use the ScheduleConfig and have its configuration
inside a '[plugin "name"]' subsection then the "startTime" key
may be confusing:

  [plugin "name"]
    startTime = ...

as one could believe that this would be the start time of the plugin.

Change-Id: Ic4a213b08957ec7c1f4945ec5ae299bb74e82f02
Merge "ScheduleConfig: compute delay without using loops"
Merge "ScheduleConfig: make the startTime and interval keys configurable"
Use AllProjectsNameProvider instead of AllProjectsName

Plugins have problem to use the classes that are using AllProjectsName
directly. Use AllProjectsNameProvider instead.

Change-Id: Idb9d9eb04ed6de1ae4209909f6d8aacd350ca51a
Merge "Use AllProjectsNameProvider instead of AllProjectsName"
Merge "Add extension point to register JGit PreUploadHooks"
Merge "Add UploadValidationListener extension point."
Merge "Remove unused asm3 dependency"
Merge branch 'stable-2.9'

* stable-2.9:
  Docs: changes /index endpoint requires administrateServer capability
  Update 2.9 release notes to mention fixes from 2.8.6

Change-Id: I0fa721185d14f6a889ef776a09cf719a19d81bb3
Update replication plugin to latest revision

- Add logs in PushOne class

Change-Id: I126802fe86d6d3105aa07f85191131e232a9edb6
Remove unused asm3 dependency

Change-Id: Id53e27635ed09bae56715711056160bb9ab2115a
Move ow2-asm library definitions to separate BUCK file

Change-Id: If7d59843dcbd534c7712683a6169b82cc9c3f94d
Merge "Move ow2-asm library definitions to separate BUCK file"
Indicate trivial rebase and commit message update on push

Indication is appended to "Uploaded patch set N" message
in the review history.

For trivial rebase:
  Uploaded patch set 3: Patch set 2 was rebased.

For commit message update:
  Uploaded patch set 3: Commit message was updated.

Change-Id: Ic5e7c45feb2ea5f1b4607f5103153aa70ae6d7da