Package ca.cdr.test.app.clients
Class AdminJsonRestClient
java.lang.Object
ca.cdr.test.app.clients.AdminJsonRestClient
- All Implemented Interfaces:
AutoCloseable
AdminJsonRestClient is a client for the Admin API of the CDR.
It currently supports anonymous and http-basic authentication.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classException thrown when a forbidden operation is attempted -
Method Summary
Modifier and TypeMethodDescriptionacceptPrivacyNotice(String theVersion) voidawaitNewTransactionLogEntry(Long theMostRecentTxLogEntryId) static AdminJsonRestClientDeprecated, for removal: This API element is subject to removal in a future version.static AdminJsonRestClientbuildAnonymous(String theBaseUrl) Deprecated, for removal: This API element is subject to removal in a future version.UseopenAnonymous(String), whose name says that the client owns the connection pool it returns and that the caller has to close it.voidcancelBatchJob(String theModuleId, String theJobId) Cancel a batch jobvoidclose()Releases the connection pool this client built for itself.<T> TconvertJsonNodeToModel(com.fasterxml.jackson.databind.JsonNode jsonNode, Class<T> modelClass) Since many methods currently return JsonNode, if you have a known model you would like to bind to, you can convert a json object to it using this method<T> com.fasterxml.jackson.databind.JsonNodeconvertModelToJsonNode(T model) createCdaTemplate(String theModuleId, String theTemplateId, CdaTemplateRequestJson theTemplate) createKeystore(OAuth2KeystoreJson theKeystore) createOAuthClient(String theNodeId, String theModuleId, OAuth2WritableClientDetailsJson theClientDetails) Create an OAuth client for a specific modulecreateOidcServer(String theNodeId, String theModuleId, OAuth2ServerJson theServer) com.fasterxml.jackson.databind.JsonNodecreateOidcServer(String theNodeId, String theModuleId, com.fasterxml.jackson.databind.JsonNode theServerDetails) Create an OIDC server for a specific modulevoiddeleteCdaTemplate(String theModuleId, String theTemplateId) voiddeleteKeystore(String theKeystoreId) voiddeleteOAuthClient(String theNodeId, String theModuleId, String theClientId) Delete an OAuth clientcom.fasterxml.jackson.databind.JsonNodePerform a generic GET request to the specified path and return the response as JsonNodeString[]Get all module IDs that support batch jobsgetAuditEvents(org.springframework.util.MultiValueMap<String, String> theQueryParams) getBatchJobInstance(String theModuleId, String theJobId) Get a specific batch job instance by IDgetBatchJobInstances(String theModuleId) getBatchJobInstances(String theModuleId, org.springframework.util.MultiValueMap<String, String> theQueryParams) getBatchJobInstancesByName(String theModuleId, String theJobDefinitionId, Boolean theEnded, int theStart, int theCount) getCdaTemplate(String theModuleId, String theTemplateId) getCdaTemplates(String theModuleId) getFhirEndpointModuleIdFromPort(int thePort) Find the module ID of the FHIR endpoint (FHIR REST, hybrid providers, or FHIR gateway) running on the given port.com.fasterxml.jackson.databind.JsonNodegetHealthChecks(boolean theOnlyRunning) Get health checks for all modulesgetKeystore(String theKeystoreId) getKeystores(int thePageIndex, int thePageSize) getMdmAlgorithms(String theModuleId) com.fasterxml.jackson.databind.JsonNodegetMdmDuplicateGoldenResources(String theModuleId) Get MDM duplicate golden resourcescom.fasterxml.jackson.databind.JsonNodegetMdmLinks(String theModuleId) Get MDM linksgetMdmMetrics(String theModuleId, String theResourceType) com.fasterxml.jackson.databind.JsonNodegetModuleConfig(String theNodeId, String theModuleId) Get the module configuration for a specific node and modulecom.fasterxml.jackson.databind.JsonNodegetModuleInterceptors(String theNodeId, String theModuleId) Get the node configurations from the admin API.com.fasterxml.jackson.databind.JsonNodeGet node statusesgetOAuthClient(String theNodeId, String theModuleId, String theClientId) Get an OAuth clientgetOAuthClients(int thePageIndex, int thePageSize, ClientStatusFilterEnum theClientStatus) getOidcServer(String theNodeId, String theModuleId, String theIssuerUrl) getOidcServers(String theNodeId, String theModuleId, int thePageIndex, int thePageSize) intgetPortFromModule(String theModuleId) Get the port number for a specific module from the node configurations.com.fasterxml.jackson.databind.JsonNodegetRestorePoint(String theNodeId, Long theId) Get a specific restore pointcom.fasterxml.jackson.databind.JsonNodegetRestorePoints(String theNodeId, String theVersion, String theFromDate, String theToDate, int theOffset, int theCount) Get a list of restore points for a nodegetTransactionLogEntryById(Long theId) Fetch a transaction log entry by ID and return all details (includes the body)getTransactionLogEvent(Long theEventId, boolean theIncludeBody) Get a specific transaction log event with its bodyGet transaction logsgetTransactionLogs(org.springframework.util.MultiValueMap<String, String> theQueryParams) static AdminJsonRestClientissuingOn(SmileTestHttpClient theHttpClient, String theBaseUrl, String theUsername, String thePassword) Builds a client that issues its requests ontheHttpClient, sharing that client's connection pool and cookie store with everything else built over it.com.fasterxml.jackson.databind.JsonNodemergeMdmGoldenResources(String theModuleId, Object theRequest) Merge MDM golden resourcesstatic AdminJsonRestClientOpens a client authenticating as the given user, over a connection pool of its own.static AdminJsonRestClientopenAnonymous(String theBaseUrl) Opens a client sending no credentials, over a connection pool of its own.processBulkImport(String theModuleId, String theFilename, String theContent) Process a bulk ETL import fileprocessBulkImport(String theModuleId, String theFilename, String theUserJobType, String theContent) Process a bulk ETL import filecom.fasterxml.jackson.databind.JsonNoderestartModule(String theNodeId, String theModuleId) Request to restart a module on all processes.com.fasterxml.jackson.databind.JsonNoderestartModule(String theNodeId, String theModuleId, boolean theShouldWaitForRestart) Request to restart a module on all processes.com.fasterxml.jackson.databind.JsonNoderestartModule(String theNodeId, String theModuleId, boolean theShouldWaitForRestart, Duration theWaitTimeout) Request to restart a module on all processes with a caller-supplied wait timeout.voidrestoreSystem(String theNodeId, Long theRestorePointId) Restore the system to a specific restore pointrevokeAllTokens(String theNodeId, String theModuleId, String theScope) com.fasterxml.jackson.databind.JsonNodestopModule(String theNodeId, String theModuleId) Request to stop a module on all processes ModuleProcessesStatusChangeResponseJsonsubmitMdmOperation(String theModuleId, IBaseParameters theParameters) Submit an MDM operation to perform batch matching on all resourcesstatic StringtoJsonString(IBaseResource theResource) updateCdaTemplate(String theModuleId, String theTemplateId, CdaTemplateRequestJson theTemplate) updateCdaTemplateScript(String theModuleId, String theTemplateId, String theScript) updateKeystore(String theKeystoreId, OAuth2KeystoreJson theKeystore) com.fasterxml.jackson.databind.JsonNodeupdateMdmLink(String theModuleId, Object theRequest) Update MDM linkcom.fasterxml.jackson.databind.JsonNodeupdateModuleConfig(String theNodeId, String theModuleId, com.fasterxml.jackson.databind.JsonNode theOptions, boolean theRestart, boolean theReload) Update the configuration for a specific module.com.fasterxml.jackson.databind.JsonNodeupdateModuleConfig(String theNodeId, String theModuleId, com.fasterxml.jackson.databind.JsonNode theOptions, boolean theRestart, boolean theReload, boolean theShouldWaitForRestart) Update the configuration for a specific module.com.fasterxml.jackson.databind.JsonNodeupdateModuleConfig(String theNodeId, String theModuleId, com.fasterxml.jackson.databind.JsonNode theOptions, boolean theRestart, boolean theReload, boolean theShouldWaitForRestart, Duration theWaitTimeout) Update the configuration for a specific module with a caller-supplied wait timeout.updateOAuthClient(String theNodeId, String theModuleId, String theClientId, OAuth2WritableClientDetailsJson theClientDetails) Update an OAuth client for a specific moduleupdateOidcServer(String theNodeId, String theModuleId, OAuth2ServerJson theServer) com.fasterxml.jackson.databind.JsonNodeupdateOidcServer(String theNodeId, String theModuleId, String theServerId, com.fasterxml.jackson.databind.JsonNode theServerDetails) Update an OIDC serverupdateTroubleshootingLoggerLevel(String theLoggerName, String theLoggerLevel) updateTroubleshootingLoggers(Set<LoggerConfigJson> theLoggers) userCreate(String theNode, String theModuleId, UserDetailsJson userDetails) userFetchByPid(String theNodeId, String theModuleId, Long thePid) com.fasterxml.jackson.databind.JsonNodeuserFindAll(String theNodeId, String theModuleId, int thePageSize) userFindAllAsString(String theNodeId, String theModuleId, int thePageSize) Find all users and return the result as a String that can be used with ObjectMappercom.fasterxml.jackson.databind.JsonNodeuserFindByUsername(String theNodeId, String theModuleId, String theUsername) userFindByUsernameAsString(String theNodeId, String theModuleId, String theUsername) Find users by username and return the result as a String that can be used with ObjectMapperuserUpdate(UserDetailsJson theUserDetails)
-
Method Details
-
open
@Nonnull public static AdminJsonRestClient open(@Nonnull String theBaseUrl, @Nonnull String theUsername, @Nonnull String thePassword) Opens a client authenticating as the given user, over a connection pool of its own.The caller owns the pool: open this in a try-with-resources block, or close it from an
@AfterAllwhen it is a field. UseissuingOn(SmileTestHttpClient, String, String, String)instead where a client to issue on already exists.- Parameters:
theBaseUrl- the Admin JSON base URL, including porttheUsername- the user to authenticate asthePassword- that user's password
-
openAnonymous
Opens a client sending no credentials, over a connection pool of its own.The caller owns the pool ? see
open(String, String, String).- Parameters:
theBaseUrl- the Admin JSON base URL, including port
-
issuingOn
@Nonnull public static AdminJsonRestClient issuingOn(@Nonnull SmileTestHttpClient theHttpClient, @Nonnull String theBaseUrl, @Nonnull String theUsername, @Nonnull String thePassword) Builds a client that issues its requests ontheHttpClient, sharing that client's connection pool and cookie store with everything else built over it. A harness passes its own client here so that a session established through this client is visible to the harness's other clients, and so thatclearCookies()reaches this client too.The pool stays the caller's:
close()leaves it open, so there is nothing here for the caller to release. Useopen(String, String, String)to build a pool of your own.- Parameters:
theHttpClient- the client to issue on, which the caller keeps ownership oftheBaseUrl- the Admin JSON base URL, including porttheUsername- the user to authenticate asthePassword- that user's password
-
build
@Deprecated(since="2026.11.R01", forRemoval=true) @Nonnull public static AdminJsonRestClient build(@Nonnull String theBaseUrl, @Nonnull String theUsername, @Nonnull String thePassword) Deprecated, for removal: This API element is subject to removal in a future version.Useopen(String, String, String), whose name says that the client owns the connection pool it returns and that the caller has to close it. -
buildAnonymous
@Deprecated(since="2026.11.R01", forRemoval=true) @Nonnull public static AdminJsonRestClient buildAnonymous(@Nonnull String theBaseUrl) Deprecated, for removal: This API element is subject to removal in a future version.UseopenAnonymous(String), whose name says that the client owns the connection pool it returns and that the caller has to close it. -
userCreate
@Nonnull public UserDetailsJson userCreate(String theNode, String theModuleId, UserDetailsJson userDetails) -
userUpdate
-
userFindByUsername
@Nonnull public com.fasterxml.jackson.databind.JsonNode userFindByUsername(String theNodeId, String theModuleId, String theUsername) -
userFindByUsernameAsString
@Nonnull public String userFindByUsernameAsString(String theNodeId, String theModuleId, String theUsername) Find users by username and return the result as a String that can be used with ObjectMapper- Parameters:
theNodeId- The node IDtheModuleId- The module IDtheUsername- The username to search for- Returns:
- The JSON string representation of the result
-
userFindAll
@Nonnull public com.fasterxml.jackson.databind.JsonNode userFindAll(String theNodeId, String theModuleId, int thePageSize) -
userFindAllAsString
Find all users and return the result as a String that can be used with ObjectMapper- Parameters:
theNodeId- The node IDtheModuleId- The module IDthePageSize- The page size- Returns:
- The JSON string representation of the result
-
userFetchByPid
-
getModuleConfig
@Nonnull public com.fasterxml.jackson.databind.JsonNode getModuleConfig(String theNodeId, String theModuleId) Get the module configuration for a specific node and module -
getModuleInterceptors
public com.fasterxml.jackson.databind.JsonNode getModuleInterceptors(String theNodeId, String theModuleId) -
updateModuleConfig
@Nonnull public com.fasterxml.jackson.databind.JsonNode updateModuleConfig(String theNodeId, String theModuleId, com.fasterxml.jackson.databind.JsonNode theOptions, boolean theRestart, boolean theReload) Update the configuration for a specific module. When eithertheRestartortheReloadis set, the client blocks until the module reports "STARTED" (up toDEFAULT_TIMEOUT). UseupdateModuleConfig(String, String, JsonNode, boolean, boolean, boolean)to opt out of the wait. -
updateModuleConfig
@Nonnull public com.fasterxml.jackson.databind.JsonNode updateModuleConfig(String theNodeId, String theModuleId, com.fasterxml.jackson.databind.JsonNode theOptions, boolean theRestart, boolean theReload, boolean theShouldWaitForRestart) Update the configuration for a specific module.- Parameters:
theShouldWaitForRestart- whentrueand eithertheRestartortheReloadis set, the client polls the admin status endpoint until the module reports "STARTED", up toDEFAULT_TIMEOUT.
-
updateModuleConfig
@Nonnull public com.fasterxml.jackson.databind.JsonNode updateModuleConfig(String theNodeId, String theModuleId, com.fasterxml.jackson.databind.JsonNode theOptions, boolean theRestart, boolean theReload, boolean theShouldWaitForRestart, Duration theWaitTimeout) Update the configuration for a specific module with a caller-supplied wait timeout.- Parameters:
theShouldWaitForRestart- whentrueand eithertheRestartortheReloadis set, the client polls the admin status endpoint until the module reports "STARTED", up totheWaitTimeout.theWaitTimeout- the maximum duration to wait for the module to report "STARTED" whentheShouldWaitForRestartistrue. Ignored otherwise.
-
stopModule
@Nonnull public com.fasterxml.jackson.databind.JsonNode stopModule(String theNodeId, String theModuleId) Request to stop a module on all processes ModuleProcessesStatusChangeResponseJson -
restartModule
@Nonnull public com.fasterxml.jackson.databind.JsonNode restartModule(String theNodeId, String theModuleId) Request to restart a module on all processes. Blocks until the module reports "STARTED" (up toDEFAULT_TIMEOUT). UserestartModule(String, String, boolean)to opt out of the wait. -
restartModule
@Nonnull public com.fasterxml.jackson.databind.JsonNode restartModule(String theNodeId, String theModuleId, boolean theShouldWaitForRestart) Request to restart a module on all processes.- Parameters:
theShouldWaitForRestart- whentrue, the client polls the admin status endpoint until the module reports "STARTED", up toDEFAULT_TIMEOUT.
-
restartModule
@Nonnull public com.fasterxml.jackson.databind.JsonNode restartModule(String theNodeId, String theModuleId, boolean theShouldWaitForRestart, Duration theWaitTimeout) Request to restart a module on all processes with a caller-supplied wait timeout.- Parameters:
theShouldWaitForRestart- whentrue, the client polls the admin status endpoint until the module reports "STARTED", up totheWaitTimeout.theWaitTimeout- the maximum duration to wait for the module to report "STARTED" whentheShouldWaitForRestartistrue. Ignored otherwise.
-
getRestorePoints
@Nonnull public com.fasterxml.jackson.databind.JsonNode getRestorePoints(String theNodeId, @Nullable String theVersion, @Nullable String theFromDate, @Nullable String theToDate, int theOffset, int theCount) Get a list of restore points for a node -
getRestorePoint
@Nonnull public com.fasterxml.jackson.databind.JsonNode getRestorePoint(String theNodeId, Long theId) Get a specific restore point -
restoreSystem
Restore the system to a specific restore point -
getHealthChecks
Get health checks for all modules -
getNodeStatuses
Get node statuses -
cancelBatchJob
Cancel a batch job -
getAllBatchJobModuleIds
Get all module IDs that support batch jobs -
getBatchJobInstance
Get a specific batch job instance by ID -
getBatchJobInstances
-
getBatchJobInstances
@Nonnull public AllBatch2JobInstancesJson getBatchJobInstances(String theModuleId, @Nonnull org.springframework.util.MultiValueMap<String, String> theQueryParams) -
getBatchJobInstancesByName
@Nonnull public Batch2JobInstancesJson getBatchJobInstancesByName(String theModuleId, String theJobDefinitionId, @Nullable Boolean theEnded, int theStart, int theCount) -
processBulkImport
@Nonnull public EtlImportProcessFileResponseJson processBulkImport(@Nonnull String theModuleId, @Nullable String theFilename, @Nonnull String theContent) Process a bulk ETL import file- Parameters:
theModuleId- the id of the etl module to targettheFilename- the optional filename as a hint for the import processtheContent- the body of the csv file to import
-
processBulkImport
@Nonnull public EtlImportProcessFileResponseJson processBulkImport(@Nonnull String theModuleId, @Nullable String theFilename, @Nullable String theUserJobType, @Nonnull String theContent) Process a bulk ETL import file- Parameters:
theModuleId- the id of the etl module to targettheFilename- the optional filename as a hint for the import processtheUserJobType- the optional job type to use for the import processtheContent- the body of the csv file to import
-
getTransactionLogs
Get transaction logs -
getTransactionLogs
@Nonnull public TransactionLogEventsJson getTransactionLogs(@Nonnull org.springframework.util.MultiValueMap<String, String> theQueryParams) -
getTransactionLogEventCodes
-
getAuditEvents
-
getAuditEvents
@Nonnull public AuditEventsJson getAuditEvents(@Nonnull org.springframework.util.MultiValueMap<String, String> theQueryParams) -
getMdmAlgorithms
-
getMdmMetrics
-
getTroubleshootingLoggers
-
updateTroubleshootingLoggers
@Nonnull public Set<LoggerConfigJson> updateTroubleshootingLoggers(@Nonnull Set<LoggerConfigJson> theLoggers) -
updateTroubleshootingLoggerLevel
@Nonnull public LoggerConfigJson updateTroubleshootingLoggerLevel(String theLoggerName, String theLoggerLevel) -
getTransactionLogEvent
@Nonnull public TransactionLogEventsJson.TransactionLogEventJson getTransactionLogEvent(Long theEventId, boolean theIncludeBody) Get a specific transaction log event with its body -
createOAuthClient
@Nonnull public OAuth2ClientDetailsJson createOAuthClient(String theNodeId, String theModuleId, OAuth2WritableClientDetailsJson theClientDetails) Create an OAuth client for a specific module -
updateOAuthClient
@Nonnull public OAuth2ClientDetailsJson updateOAuthClient(String theNodeId, String theModuleId, String theClientId, OAuth2WritableClientDetailsJson theClientDetails) Update an OAuth client for a specific module -
deleteOAuthClient
Delete an OAuth client -
getOAuthClients
@Nonnull public OAuth2ClientsJson getOAuthClients(int thePageIndex, int thePageSize, @Nullable ClientStatusFilterEnum theClientStatus) -
getOAuthClient
@Nonnull public OAuth2ClientDetailsJson getOAuthClient(String theNodeId, String theModuleId, String theClientId) Get an OAuth client -
createOidcServer
@Nonnull public com.fasterxml.jackson.databind.JsonNode createOidcServer(String theNodeId, String theModuleId, com.fasterxml.jackson.databind.JsonNode theServerDetails) Create an OIDC server for a specific module -
createOidcServer
@Nonnull public OAuth2ServerJson createOidcServer(String theNodeId, String theModuleId, @Nonnull OAuth2ServerJson theServer) -
getOidcServer
@Nonnull public OAuth2ServerJson getOidcServer(String theNodeId, String theModuleId, String theIssuerUrl) -
getOidcServers
@Nonnull public OAuth2ServersJson getOidcServers(@Nullable String theNodeId, @Nullable String theModuleId, int thePageIndex, int thePageSize) -
updateOidcServer
@Nonnull public com.fasterxml.jackson.databind.JsonNode updateOidcServer(String theNodeId, String theModuleId, String theServerId, com.fasterxml.jackson.databind.JsonNode theServerDetails) Update an OIDC server -
updateOidcServer
@Nonnull public OAuth2ServerJson updateOidcServer(String theNodeId, String theModuleId, @Nonnull OAuth2ServerJson theServer) -
createCdaTemplate
@Nonnull public CdaTemplateJson createCdaTemplate(String theModuleId, String theTemplateId, @Nonnull CdaTemplateRequestJson theTemplate) -
updateCdaTemplate
@Nonnull public CdaTemplateJson updateCdaTemplate(String theModuleId, String theTemplateId, @Nonnull CdaTemplateRequestJson theTemplate) -
updateCdaTemplateScript
@Nonnull public CdaTemplateJson updateCdaTemplateScript(String theModuleId, String theTemplateId, String theScript) -
getCdaTemplates
-
getCdaTemplate
-
deleteCdaTemplate
-
getPrivacyNotice
-
getPrivacyNoticeStatus
-
acceptPrivacyNotice
-
getKeystores
-
getKeystore
-
createKeystore
-
updateKeystore
@Nonnull public OAuth2KeystoreJson updateKeystore(String theKeystoreId, @Nonnull OAuth2KeystoreJson theKeystore) -
deleteKeystore
-
revokeAllTokens
@Nonnull public OAuth2RevokeAllWithScopeResponseJson revokeAllTokens(@Nullable String theNodeId, @Nullable String theModuleId, @Nullable String theScope) -
getMdmLinks
Get MDM links -
mergeMdmGoldenResources
@Nonnull public com.fasterxml.jackson.databind.JsonNode mergeMdmGoldenResources(String theModuleId, Object theRequest) Merge MDM golden resources -
updateMdmLink
@Nonnull public com.fasterxml.jackson.databind.JsonNode updateMdmLink(String theModuleId, Object theRequest) Update MDM link -
getMdmDuplicateGoldenResources
@Nonnull public com.fasterxml.jackson.databind.JsonNode getMdmDuplicateGoldenResources(String theModuleId) Get MDM duplicate golden resources -
submitMdmOperation
Submit an MDM operation to perform batch matching on all resources- Parameters:
theModuleId- The module IDtheParameters- The parameters for the MDM operation- Returns:
- The response as a String
-
toJsonString
-
getNodeConfigurations
Get the node configurations from the admin API.- Returns:
- The node configurations
-
getPortFromModule
Get the port number for a specific module from the node configurations.- Parameters:
theModuleId- The ID of the module to get the port for- Returns:
- The port number, or the default FHIR port (8000) if not found
-
getFhirEndpointModuleIdFromPort
Find the module ID of the FHIR endpoint (FHIR REST, hybrid providers, or FHIR gateway) running on the given port.- Parameters:
thePort- The port to look up- Returns:
- The module ID of the FHIR endpoint module running on the given port
- Throws:
IllegalArgumentException- if no FHIR endpoint module is found running on the given portIllegalStateException- if no nodes are found in the node configuration
-
convertJsonNodeToModel
public <T> T convertJsonNodeToModel(com.fasterxml.jackson.databind.JsonNode jsonNode, Class<T> modelClass) throws com.fasterxml.jackson.core.JsonProcessingException Since many methods currently return JsonNode, if you have a known model you would like to bind to, you can convert a json object to it using this method- Throws:
com.fasterxml.jackson.core.JsonProcessingException
-
convertModelToJsonNode
public <T> com.fasterxml.jackson.databind.JsonNode convertModelToJsonNode(T model) throws com.fasterxml.jackson.core.JsonProcessingException - Throws:
com.fasterxml.jackson.core.JsonProcessingException
-
getMostRecentTransactionLogEntry
@Nullable public TransactionLogEventsJson.TransactionLogEventJson getMostRecentTransactionLogEntry() -
getMostRecentTransactionLogEntryId
-
awaitNewTransactionLogEntry
-
getTransactionLogEntryById
Fetch a transaction log entry by ID and return all details (includes the body) -
get
Perform a generic GET request to the specified path and return the response as JsonNode- Parameters:
thePath- The path to perform the GET request on- Returns:
- The response as JsonNode
-
close
Releases the connection pool this client built for itself. A no-op when the client was built over one supplied by a caller, which owns its own pool.- Specified by:
closein interfaceAutoCloseable
-
open(String, String, String), whose name says that the client owns the connection pool it returns and that the caller has to close it.