Esto es incompatibilidad de interfaz. javax.sql.DataSource
define un método
default ConnectionBuilder createConnectionBuilder() throws SQLException
Y según el contrato, el valor devuelto debe ser del tipo ConnectionBuilder.
Si echa un vistazo a la documentación de oracle.ucp.jdbc.PoolDataSourceImpl, define el método como
public UCPConnectionBuilder createConnectionBuilder()
mientras que oracle.ucp.jdbc.UCPConnectionBuilder
no es un subtipo de java.sql.ConnectionBuilder
.
Ahora, a menos que Oracle publique una versión nunca de oracle.ucp.jdbc.UCPConnectionBuilder
interfaz que extiende java.sql.ConnectionBuilder
, no podrá intercambiar UCP PoolDataSource con javax.sql.DataSource
.
La última versión en este momento parece ser UCP 19.3 , que aún tendría el mismo problema, lo cual es desafortunado ya que 19.3 se anuncia como compatible con JDK11. Informe un error contra Oracle UCP para que los mantenedores estén al tanto del nuevo participante createConnectionBuilder en la interfaz de DataSource.
En el interior, si es factible, puede volver a usar 11g versión 2 de UCP (no 12, no 19) que no tiene el método createConnectionBuilder en la interfaz PoolDataSource. No es una situación ideal, ya que está renunciando a una década de mejoras en UCP al volver a 11g.