org.hibernate.procedure.spi.CallableStatementSupport and org.hibernate.engine.jdbc.cursor.spi.RefCursorSupport share similarities. I'd like to unify them.
org.hibernate.engine.jdbc.cursor.spi.RefCursorSupport is a Service as part of the registry. Also, part of its contract is to abstract away some Java 8 specific functionality.
org.hibernate.procedure.spi.CallableStatementSupport is obtained from the Dialect.
This is a great example of why it would be great to have the ability to define Service deps as the ServiceInitiator level. Not so much for inject purposes, but just for saying that this initiator needs Service-X to be available before its initiateService method it called. The idea here is that is would be great to have the JdbcServices aggregate Service available prior to the call to RefCursorSupportInitiator. This would allow us to consider information from the Dialect as we build the RefCursorSupport.