Update replication plugin

- Fix double packaging of commons-io

Change-Id: Ibc85006ee74dc4e29b9e90ad9b12139fc82eb7cf
WebSessionCache: Make response parameter optional

Since I255661a62 WebSession was replaced with DynamicItem<WebSession>
in HttpRequestContext to enable plugins to provider alternative
implementations of cached web session functionality.

One side efect of it is, that now code that is using RequestScopePropagator
(with the only available implementation of GuiceRequestScopePropagator)
unable to get H2CacheBasedWebSession injected, because it relies on
ServletScopes.continueRequest() which doesn't expose HTTP response in the
continued request scope:

  return new Callable<T>() {
    public T call() throws Exception {
      checkScopingState(null == GuiceFilter.localContext.get(),
        "Cannot continue request in the same thread as a HTTP request!");
      return new GuiceFilter.Context(continuingRequest, continuingRequest,
          null)
        .call(callable);
    }
  };

Given that request scope propagation feature is primarly targeting
background tasks, make response parameter in CacheBasedWebSession
optional and adjust the code to handle this case properly.

Change-Id: Iaa5dc15f294a07b83a2411e9f29872df3a82b324
WebSession: Prevent NPE in GitSmartHttpTools.isGitClient()

ContinuingHttpServletRequest doesn't have request URI. That cause

  public static boolean isInfoRefs(HttpServletRequest req) {
    return req.getRequestURI().endsWith(INFO_REFS_PATH)
    && VALID_SERVICES.contains(req.getParameter("service"));
  }

to throw NPE.

More robust implementation of isInfoRefs() could check for

  req.getRequestURI() != null

or swap the conditions.

Bug was filled against JGit project: [1].

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=435404

Change-Id: Iac85505720496b411814a6d050a7612d507bf3a6
Doc: Fix typo

Change-Id: Id1a266a741fa2e72d2e653e60844184540787934
Update replication plugin to latest revision

- Fix double packaging of commons-io

Change-Id: I7d9159e7ba6dd1e209e613d6804b1b345604c56d
Merge branch 'stable-2.9'

* stable-2.9:
  Doc: Fix typo
  Update replication plugin

Change-Id: Ifc3271f6587f075d58a782faf57cb5ad384d3d1d
Buck: Set up Closure Compiler tool chain to minify JavaScript code

Extend the build tool chain to minify JavaScript from CodeMirror
distribution.

Currently SIMPLE_OPTIMIZATIONS mode is used, as ADVANCED_OPTIMIZATIONS
doesn't seem to work.  But even with simple mode the minification factor
is:

393441:cm3-verbose.js
167971:cm3_minified.js

And even more for language modes:

56029:perl-verbose.js
10122:perl-minified.js

Disadvantage: Longer compilation time. In follow-up changes we may want
to optimize it by disabling JS minification in development build.

Change-Id: I24790e84484add4f02b3821cca4b69e62fde0c22
Buck: Fix plugin build by not merging manifests from dependent JARs

After posting this mail to mailing list [1], filing this issue [2],
and creating this pull request [3], Buck team provided a solution to
the problem: when multiple JARs contain MANIFEST files, the default
behaviour of java_binary() was to merge the content of those manifest
files together. That breaks our plugins, as the content from other JARs
interfere with the manifest content of plugins.

Recent Buck version [4] provides undocumented parameter to change this
behaviour.

[1] https://groups.google.com/forum/#!topic/buck-build/M7Nu71okdYY
[2] https://github.com/facebook/buck/issues/86
[3] https://github.com/facebook/buck/pull/87
[4] https://github.com/facebook/buck/commit/\
96ba1967ef941558bc4c12ce88d5eaeba0b23275

Change-Id: Ia228fb51cfe8db678c2551b9cd1802bdaf4d44fc
Patch guice servlet extension to fix cookies bug

Since I255661a62 web session management code facing subtle cookies
mutability problem in request continuation code for background tasks.
Before this change, original request was used in background tasks.

Cookies mutability bug [1] was fixed by Guice team but wasn't released
yet.  Build against unreleased version and deploy it temporarily on Google 
storage bucket until the fix is released.

[1] http://code.google.com/p/google-guice/issues/detail?id=806

Change-Id: Ife019c22b85a0e1e49cfafeaeebb886be27aeacd
Merge topic 'web-session-regression'

* changes:
  Patch guice servlet extension to fix cookies bug
  WebSession: Prevent NPE in GitSmartHttpTools.isGitClient()
  WebSessionCache: Make response parameter optional
Label abbreviation feature is dead; kill it

Note: because this feature wasn't used at all, there is no need for
new schema version with automagic gerrit.config clean up.

Bug: issue 2618
Change-Id: Ic129ca43c21c1955b842d61b84c515d622711ced
Merge changes Ifc3271f6,I7d9159e7

* changes:
  Merge branch 'stable-2.9'
  Update replication plugin to latest revision