Use PerThreadCache to create code-owners plugin config only once per request

Each call of CodeOwnersPluginConfiguration#getProjectConfig causes a
load of the plugin config with inheritance via
pluginConfigFactory#getProjectPluginConfigWithInheritance(projectName,
pluginName) which is not free. CodeOwnersPluginConfigSnapshot that is
returned by CodeOwnersPluginConfiguration#getProjectConfig caches the
plugin config, hence creating CodeOwnersPluginConfigSnapshot only once
and reading multiple config param from it is more efficient. Reduce the
number of CodeOwnersPluginConfiguration#getProjectConfig calls by
caching CodeOwnersPluginConfigSnapshort in the PerThreadCache so that
the code-owners plugin config is only created once per request.

Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: If541bc32929996b3af19ba1ad0709946aa04ffbb
1 file changed
tree: e1ec8b760bddcd7fd4d05c352f28569035273974
  1. java/
  2. javatests/
  3. proto/
  4. resources/
  5. test/
  6. ui/
  7. .eslintrc.json
  8. .gitignore
  9. .gitreview
  10. bower.json
  11. BUILD
  12. LICENSE
  13. package-lock.json
  14. package.json
  15. README.md
README.md

Gerrit Code Review code-owners plugin

This plugin provides support for defining code owners for files in a repository.

If the code-owners plugin is enabled, changes can only be submitted if all touched files are covered by approvals from code owners.

Also see resources/Documentation/about.md.

IMPORTANT: Before installing/enabling the plugin follow the instructions from the setup guide, see resources/Documentation/setup-guide.md.