@@ -34,33 +34,12 @@ public static DatabaseConnectionSourceBuilder builder(
34
34
requireNonNull (envAccessor , "No environmental accessor provided" );
35
35
36
36
final DatabaseConnectionSourceBuilder dbConnectionSourceBuilder ;
37
- final String connectionUrl = envAccessor .getenv ("SCHCRWLR_JDBC_URL" );
37
+ final String connectionUrl = trimToEmpty ( envAccessor .getenv ("SCHCRWLR_JDBC_URL" ) );
38
38
39
- if (isBlank (connectionUrl )) {
40
- final String databaseSystemIdentifier = trimToEmpty (envAccessor .getenv ("SCHCRWLR_SERVER" ));
41
-
42
- final DatabaseConnectorRegistry databaseConnectorRegistry =
43
- DatabaseConnectorRegistry .getDatabaseConnectorRegistry ();
44
- final DatabaseConnector databaseConnector =
45
- databaseConnectorRegistry .findDatabaseConnectorFromDatabaseSystemIdentifier (
46
- databaseSystemIdentifier );
47
-
48
- dbConnectionSourceBuilder = databaseConnector .databaseConnectionSourceBuilder ();
49
-
50
- final String host = trimToEmpty (envAccessor .getenv ("SCHCRWLR_HOST" ));
51
- dbConnectionSourceBuilder .withHost (host );
52
-
53
- final String port = trimToEmpty (envAccessor .getenv ("SCHCRWLR_PORT" ));
54
- if (isValidPort (port )) {
55
- dbConnectionSourceBuilder .withPort (Integer .valueOf (port ));
56
- }
57
-
58
- final String database = trimToEmpty (envAccessor .getenv ("SCHCRWLR_DATABASE" ));
59
- dbConnectionSourceBuilder .withDatabase (database );
39
+ if (!isBlank (connectionUrl )) {
40
+ dbConnectionSourceBuilder = builderFromUrl (connectionUrl );
60
41
} else {
61
- // This JDBC URL is not expected to have any substitutable parameters, so subsequent
62
- // settings should not have any effect
63
- dbConnectionSourceBuilder = DatabaseConnectionSourceBuilder .builder (connectionUrl );
42
+ dbConnectionSourceBuilder = builderForServer (envAccessor );
64
43
}
65
44
66
45
final UserCredentials userCredentials =
@@ -72,6 +51,50 @@ public static DatabaseConnectionSourceBuilder builder(
72
51
return dbConnectionSourceBuilder ;
73
52
}
74
53
54
+ private static DatabaseConnectionSourceBuilder builderForServer (
55
+ final EnvironmentVariableAccessor envAccessor ) {
56
+ final DatabaseConnectionSourceBuilder dbConnectionSourceBuilder ;
57
+ final String databaseSystemIdentifier = trimToEmpty (envAccessor .getenv ("SCHCRWLR_SERVER" ));
58
+
59
+ final DatabaseConnectorRegistry databaseConnectorRegistry =
60
+ DatabaseConnectorRegistry .getDatabaseConnectorRegistry ();
61
+ final DatabaseConnector databaseConnector =
62
+ databaseConnectorRegistry .findDatabaseConnectorFromDatabaseSystemIdentifier (
63
+ databaseSystemIdentifier );
64
+
65
+ dbConnectionSourceBuilder = databaseConnector .databaseConnectionSourceBuilder ();
66
+
67
+ final String host = trimToEmpty (envAccessor .getenv ("SCHCRWLR_HOST" ));
68
+ dbConnectionSourceBuilder .withHost (host );
69
+
70
+ final String port = trimToEmpty (envAccessor .getenv ("SCHCRWLR_PORT" ));
71
+ if (isValidPort (port )) {
72
+ dbConnectionSourceBuilder .withPort (Integer .valueOf (port ));
73
+ }
74
+
75
+ final String database = trimToEmpty (envAccessor .getenv ("SCHCRWLR_DATABASE" ));
76
+ dbConnectionSourceBuilder .withDatabase (database );
77
+
78
+ return dbConnectionSourceBuilder ;
79
+ }
80
+
81
+ private static DatabaseConnectionSourceBuilder builderFromUrl (final String connectionUrl ) {
82
+ final DatabaseConnectionSourceBuilder dbConnectionSourceBuilder ;
83
+
84
+ // This JDBC URL is not expected to have any substitutable parameters, so subsequent
85
+ // settings should not have any effect
86
+ dbConnectionSourceBuilder = DatabaseConnectionSourceBuilder .builder (connectionUrl );
87
+
88
+ final DatabaseConnectorRegistry databaseConnectorRegistry =
89
+ DatabaseConnectorRegistry .getDatabaseConnectorRegistry ();
90
+ DatabaseConnector databaseConnector =
91
+ databaseConnectorRegistry .findDatabaseConnectorFromUrl (connectionUrl );
92
+ dbConnectionSourceBuilder .withConnectionInitializer (
93
+ databaseConnector .databaseConnectionSourceBuilder ().getConnectionInitializer ());
94
+
95
+ return dbConnectionSourceBuilder ;
96
+ }
97
+
75
98
/**
76
99
* Checks if a string is a valid numeric value.
77
100
*
0 commit comments