I've finished code cleanup and refactoring in this patch. Some things I want to mention:
1) Static references (tightly coupled code). I had replaced it with DI.
2) Strange way to work with exceptions. I've removed exception declarations from method signatures, and replaced some checked exceptions with runtime ones.
3) Guava methods to create collections/maps, such as Maps.newHashMap() makes code cleaner.
4) Some big methods had been split into small parts.
5) Executor and job factory classes has been extracted.
For Fjodor Vershinin, you can try to replace non type-safe code for getting query parameters with JAX-RS. (Java API for restful services). This can give two benefits: type-safety and code reuse (you can reuse jax-rs models in your client, where proxy can be generated automatically).