@@ -101,6 +101,16 @@ private static String nextDatabaseClientId(DatabaseId databaseId) {
101
101
@ GuardedBy ("this" )
102
102
private final Map <DatabaseId , DatabaseClientImpl > dbClients = new HashMap <>();
103
103
104
+ @ GuardedBy ("this" )
105
+ private final Map <
106
+ InstanceAdminStub , com .google .cloud .spanner .admin .instance .v1 .InstanceAdminClient >
107
+ instanceAdminClients = new HashMap <>();
108
+
109
+ @ GuardedBy ("this" )
110
+ private final Map <
111
+ DatabaseAdminStub , com .google .cloud .spanner .admin .database .v1 .DatabaseAdminClient >
112
+ databaseAdminClients = new HashMap <>();
113
+
104
114
private final CloseableExecutorProvider asyncExecutorProvider ;
105
115
106
116
@ GuardedBy ("this" )
@@ -109,6 +119,9 @@ private static String nextDatabaseClientId(DatabaseId databaseId) {
109
119
private final DatabaseAdminClient dbAdminClient ;
110
120
private final InstanceAdminClient instanceClient ;
111
121
122
+ private final com .google .cloud .spanner .admin .database .v1 .DatabaseAdminClient databaseAdminClient ;
123
+ private final com .google .cloud .spanner .admin .instance .v1 .InstanceAdminClient instanceAdminClient ;
124
+
112
125
/**
113
126
* Exception class used to track the stack trace at the point when a Spanner instance is closed.
114
127
* This exception will be thrown if a user tries to use any resources that were returned by this
@@ -137,6 +150,12 @@ static final class ClosedException extends RuntimeException {
137
150
this .dbAdminClient = new DatabaseAdminClientImpl (options .getProjectId (), gapicRpc );
138
151
this .instanceClient =
139
152
new InstanceAdminClientImpl (options .getProjectId (), gapicRpc , dbAdminClient );
153
+ this .databaseAdminClient =
154
+ com .google .cloud .spanner .admin .database .v1 .DatabaseAdminClient .create (
155
+ gapicRpc .getDatabaseAdminStub ());
156
+ this .instanceAdminClient =
157
+ com .google .cloud .spanner .admin .instance .v1 .InstanceAdminClient .create (
158
+ gapicRpc .getInstanceAdminStub ());
140
159
}
141
160
142
161
SpannerImpl (SpannerOptions options ) {
@@ -211,8 +230,7 @@ public DatabaseAdminClient getDatabaseAdminClient() {
211
230
212
231
@ Override
213
232
public com .google .cloud .spanner .admin .database .v1 .DatabaseAdminClient databaseAdminClient () {
214
- DatabaseAdminStub databaseAdminStub = gapicRpc .getDatabaseAdminStub ();
215
- return com .google .cloud .spanner .admin .database .v1 .DatabaseAdminClient .create (databaseAdminStub );
233
+ return databaseAdminClient ;
216
234
}
217
235
218
236
@ Override
@@ -222,8 +240,7 @@ public InstanceAdminClient getInstanceAdminClient() {
222
240
223
241
@ Override
224
242
public com .google .cloud .spanner .admin .instance .v1 .InstanceAdminClient instanceAdminClient () {
225
- InstanceAdminStub instanceAdminStub = gapicRpc .getInstanceAdminStub ();
226
- return com .google .cloud .spanner .admin .instance .v1 .InstanceAdminClient .create (instanceAdminStub );
243
+ return instanceAdminClient ;
227
244
}
228
245
229
246
@ Override
0 commit comments