I guess Silhouette should be used only with Scala. By any chance any bindings for Java is available?
It's currently Scala only.
I want to start with implementing my own OAuth provider for generating refresh tokens. Is it possible?
Yes, you can create your own client implementation in Silhouette.
Also I want to use JWT tokens for access tokens for authorization purpose. Is it possible?
Possible with the JWT authenticator.
I may need Google / Facebook OAuth in future, I guess it will be easy to integrate with the system.
Both providers are already implemented.