package Ġcom . time ular . ny t ta . spring . datasource Ċ Ċ import Ġorg . springframework . jdbc . datasource . Abstract DataSource Ċ import Ġorg . springframework . retry . support . Retry Template Ċ import Ġjava . sql . Connection Ċ import Ġjavax . sql . DataSource Ċ Ċ class ĠRetry able DataSource ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠdataSource Delegate : ĠDataSource , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġretry Template : ĠRetry Template Ċ ) Ġ: ĠAbstract DataSource () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Connection (): ĠConnection Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretry Template . execute < Connection , ĠThrowable > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Delegate . connection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Connection ( username : ĠString ?, Ġpassword : ĠString ?): ĠConnection Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretry Template . execute < Connection , ĠThrowable > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Delegate . getConnection ( username , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ }