tree 2ae5edf70c54dc8b775ba6b58ca2d6a8b169d701
parent aa6560c5b153d615dcc0d187109cbaa3606d1581
parent b25076ce2f67722f75c358be4cc986eab835bde0
author Hugo Arès <hugo.ares@ericsson.com> 1525965210 -0400
committer Hugo Arès <hugo.ares@ericsson.com> 1525970367 -0400

Merge branch 'stable-2.15'

* stable-2.15:
  Update bazlets to the latest stable-2.15 revision
  Include project name in the index REST API
  Update bazlets to latest revision on stable-2.14
  Make Wiremock return 204 for any request
  Execute test setup before loading the plugin
  Rename setup method to beforeAction
  Fix GroupIndexForwardingIT
  Automate the SonarQube analysis with bazel
  Use consistent name for Logger instances
  Update bazlets to latest revision on stable-2.15
  Update bazlets to latest revision on stable-2.14
  Format Java code with google-java-format version 1.5
  Change default value of cache and index threadPoolSize
  Change default value of http.retryInterval and maxTries
  Set the http.retryInterval to 100ms for tests
  Update bazlets to latest stable-2.15 to use 2.15.1 API
  Avoid KeyUtil internals for better encapsulation
  Update bazlets to use 2.15 release API
  Remove unneeded finals
  Don't propagate cache eviction for the project_list cache
  Remove unneeded configuration options from IT tests
  Use projects cache in cache eviction IT test
  Add all core caches to CachePattenMatcherTest
  Extract indexing out of REST forwarder
  Use evicted object key toString
  Do not refer to KeyUtils internals in tests
  Remove references to GwtOrm ID parsing
  Replace usage of *.{Id,UUID}.parse() method in test
  Remove unneeded setup of the encoder

Change-Id: I63874d83b898f35da0b167bebc73598e3ec095f1
