File tree Expand file tree Collapse file tree 5 files changed +26
-0
lines changed
ebean-datasource-api/src/main/java Expand file tree Collapse file tree 5 files changed +26
-0
lines changed Original file line number Diff line number Diff line change 88final class DSManager {
99
1010 private static final DataSourceFactory factory = init ();
11+ private static final NewConnectionInitializer defaultInitializer = initConnectionInitializer ();
1112
1213 private static DataSourceFactory init () {
1314 return ServiceLoader .load (DataSourceFactory .class )
1415 .findFirst ()
1516 .orElseThrow (() -> new IllegalStateException ("No DataSourceFactory, add ebean-datasource to the classpath." ));
1617 }
1718
19+ private static NewConnectionInitializer initConnectionInitializer () {
20+ return ServiceLoader .load (NewConnectionInitializer .class )
21+ .findFirst ()
22+ .orElse (null );
23+ }
24+
1825 static DataSourceFactory get () {
1926 return factory ;
2027 }
28+
29+ static NewConnectionInitializer defaultInitializer () {
30+ return defaultInitializer ;
31+ }
2132}
Original file line number Diff line number Diff line change @@ -384,6 +384,11 @@ default DataSourceBuilder listener(DataSourcePoolListener listener) {
384384 */
385385 DataSourceBuilder connectionInitializer (NewConnectionInitializer connectionListener );
386386
387+ /**
388+ * Set the default connection initializer to use if not already set.
389+ */
390+ DataSourceBuilder defaultConnectionInitializer (NewConnectionInitializer defaultInitializer );
391+
387392 /**
388393 * Set a SQL statement used to test the database is accessible.
389394 * <p>
Original file line number Diff line number Diff line change @@ -489,6 +489,14 @@ public DataSourceBuilder connectionInitializer(NewConnectionInitializer connecti
489489 return this ;
490490 }
491491
492+ @ Override
493+ public DataSourceBuilder defaultConnectionInitializer (NewConnectionInitializer defaultInitializer ) {
494+ if (connectionInitializer == null && defaultInitializer != null ) {
495+ connectionInitializer = defaultInitializer ;
496+ }
497+ return this ;
498+ }
499+
492500 @ Override
493501 public String getHeartbeatSql () {
494502 return heartbeatSql ;
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ public interface DataSourceFactory {
2222 * Create the DataSourcePool given the name and configuration.
2323 */
2424 static DataSourcePool create (String name , DataSourceConfig config ) {
25+ config .defaultConnectionInitializer (DSManager .defaultInitializer ());
2526 return DSManager .get ().createPool (name , config );
2627 }
2728
Original file line number Diff line number Diff line change 44 requires transitive io .avaje .applog ;
55
66 uses io .ebean .datasource .DataSourceFactory ;
7+ uses io .ebean .datasource .NewConnectionInitializer ;
78
89 exports io .ebean .datasource ;
910}
You can’t perform that action at this time.
0 commit comments