building java-client with dependency injection and variable parameter list and preparing for native interface