Questa è incompatibilità dell'interfaccia. javax.sql.DataSource
definisce un metodo
default ConnectionBuilder createConnectionBuilder() throws SQLException
E come da contratto, il valore restituito deve essere di tipo ConnectionBuilder.
Se dai un'occhiata alla documentazione di oracle.ucp.jdbc.PoolDataSourceImpl, definisce il metodo come
public UCPConnectionBuilder createConnectionBuilder()
mentre oracle.ucp.jdbc.UCPConnectionBuilder
non è un sottotipo di java.sql.ConnectionBuilder
.
Ora, a meno che Oracle non rilasci una versione mai di oracle.ucp.jdbc.UCPConnectionBuilder
interfaccia che estende java.sql.ConnectionBuilder
, non sarai in grado di interscambiare UCP PoolDataSource con javax.sql.DataSource
.
L'ultima versione a questo punto sembra essere UCP 19.3 , che avrebbe comunque lo stesso problema, sfortunato poiché 19.3 è pubblicizzato come conforme a JDK11. Si prega di segnalare un bug contro Oracle UCP per informare i manutentori del nuovo concorrente createConnectionBuilder nell'interfaccia DataSource.
Nell'intrim, se possibile, puoi ricorrere all'utilizzo della versione 2 di UCP 11g (non 12, non 19) che non ha il metodo createConnectionBuilder sull'interfaccia PoolDataSource. Non è una situazione ideale, dal momento che stai rinunciando a un decennio di miglioramenti nell'UCP tornando a 11 g.