# Package org.apache.calcite.avatica.remote

JDBC driver that uses remote procedure calls.

See: Description

Interface Summary
AvaticaHttpClient: An interface which defines how requests are sent to the Avatica server.
AvaticaHttpClientFactory: A factory for constructing `AvaticaHttpClient`'s.
Handler<T>: API for text request-response calls to an Avatica server.
HostnameVerificationConfigurable: An interface to decorate an `AvaticaHttpClient` that can support configuration on SSL hostname verification.
KeyStoreConfigurable: Allows a keystore (and keystorepassword, keypassword) to be provided to enable MTLS authentication
ProtobufMeta: An extension of `Meta` which allows for native processing of calls with the Protobuf API objects instead of the POJOS (to avoid object translation).
ProtobufTranslation: Generic interface to support parsing of serialized protocol buffers between client and server.
Service: API for request-response calls to an Avatica server.
Service.Factory: Factory that creates a `Service`.
TrustStoreConfigurable: Allows a truststore (and password) to be provided to enable TLS authentication.
UsernamePasswordAuthenticateable: Interface that allows configuration of a username and password with some HTTP authentication.

Class Summary
AbstractHandler<T>: Abstract base class for `Handler`s to extend to inherit functionality common across serialization strategies.
AbstractService: A common base class for `Service` implementations that implement modifications made to response objects.
AvaticaCommonsHttpClientImpl: A common class to invoke HTTP requests against the Avatica server agnostic of the data being sent and received across the wire.
AvaticaCommonsHttpClientSpnegoImpl: Implementation of an AvaticaHttpClient which uses SPNEGO.
AvaticaHttpClientFactoryImpl: Default implementation of `AvaticaHttpClientFactory` which chooses an implementation from a property.
AvaticaHttpClientImpl: A common class to invoke HTTP requests against the Avatica server agnostic of the data being sent and received across the wire.
AvaticaRemoteConnectionConfigImpl: Implementation of `ConnectionConfig` with extra properties specific to Remote Driver.
ClientKeytabJaasConf: Javax Configuration class which always returns a configuration for our keytab-based login suitable for callers which are acting as initiators (e.g.
DoAsAvaticaHttpClient: HTTP client implementation which invokes the wrapped HTTP client in a doAs with the provided Subject.
Driver: Avatica Remote JDBC driver.
Handler.HandlerResponse<T>: Struct that encapsulates the context of the result of a request to Avatica.
JsonHandler: Implementation of `Handler` that decodes JSON requests, sends them to a `Service`, and encodes the responses into JSON.
JsonService: Implementation of `Service` that encodes requests and responses as JSON.
KerberosConnection: A utility to perform Kerberos logins and renewals.
LocalJsonService: Implementation of `Service` that goes to an in-process instance of `Service`.
LocalProtobufService: A Service implementation that performs protocol buffer serialization on request and responses on either side of computing a response from a request to mimic some transport to a server which would normally perform such computation.
LocalService: Implementation of `Service` that talks to a local `Meta`.
MetricsHelper: A utility class to encapsulate common logic in use of metrics implementation.
MockJsonService: Mock implementation of `Service` that encodes its requests and responses as JSON and looks up responses from a pre-defined map.
MockJsonService.Factory: Factory that creates a `MockJsonService`.
MockProtobufService: A mock implementation of ProtobufService for testing.
MockProtobufService.MockProtobufServiceFactory: A factory that instantiates the mock protobuf service.
ProtobufHandler: Dispatches serialized protocol buffer messages to the provided `Service` by converting them to the POJO Request.
ProtobufService: Service implementation that encodes requests and responses as protocol buffers.
ProtobufTranslationImpl: Implementation of `ProtobufTranslationImpl` that translates protobuf requests to POJO requests.
RemoteProtobufService: ProtobufService implementation that queries against a remote implementation, using protocol buffers as the serialized form.
RemoteService: Implementation of `Service` that translates requests into JSON and sends them to a remote server, usually an HTTP server.
Service.Base: Base class for request and response.
Service.CatalogsRequest: Request for `Meta.getCatalogs(Meta.ConnectionHandle)`.
Service.CloseConnectionRequest: Request for `Meta.closeConnection(org.apache.calcite.avatica.Meta.ConnectionHandle)`.
Service.CloseConnectionResponse: Response from `Service.CloseConnectionRequest`.
Service.CloseStatementRequest: Request for `Meta.closeStatement(org.apache.calcite.avatica.Meta.StatementHandle)`.
Service.CloseStatementResponse: Response from `Service.CloseStatementRequest`.
Service.ColumnsRequest: Request for `Meta.getColumns(Meta.ConnectionHandle, String, org.apache.calcite.avatica.Meta.Pat, org.apache.calcite.avatica.Meta.Pat, org.apache.calcite.avatica.Meta.Pat)`.
Service.CommitRequest: An RPC request to invoke a commit on a Connection.
Service.CommitResponse: An RPC response from invoking commit on a Connection.
Service.ConnectionSyncRequest: Request for `Meta.connectionSync(Meta.ConnectionHandle, Meta.ConnectionProperties)`.
Service.ConnectionSyncResponse: Response for `Meta.connectionSync(Meta.ConnectionHandle, Meta.ConnectionProperties)`.
Service.CreateStatementRequest: Request for `Meta.createStatement(org.apache.calcite.avatica.Meta.ConnectionHandle)`.
Service.CreateStatementResponse: Response from `Service.CreateStatementRequest`.
Service.DatabasePropertyRequest: Request for `Meta.getDatabaseProperties(Meta.ConnectionHandle)`.
Service.DatabasePropertyResponse: Response for `Meta.getDatabaseProperties(Meta.ConnectionHandle)`.
Service.ErrorResponse: Response for any request that the server failed to successfully perform.
Service.ExecuteBatchRequest: Request object to execute a batch of commands.
Service.ExecuteBatchResponse: Response object for executing a batch of commands.
Service.ExecuteRequest: Request for `Meta.execute(org.apache.calcite.avatica.Meta.StatementHandle, java.util.List<org.apache.calcite.avatica.remote.TypedValue>, long)`.
Service.ExecuteResponse: Response to a `Service.PrepareAndExecuteRequest`.
Service.FetchRequest: Request for `Meta.fetch(org.apache.calcite.avatica.Meta.StatementHandle, long, int)`.
Service.FetchResponse: Response from `Service.FetchRequest`.
Service.OpenConnectionRequest: Request for `Meta.openConnection(org.apache.calcite.avatica.Meta.ConnectionHandle, java.util.Map<java.lang.String, java.lang.String>)`.
Service.OpenConnectionResponse: Response from `Service.OpenConnectionRequest`.
Service.PrepareAndExecuteBatchRequest: Request to prepare a statement and execute a series of batch commands in one call.
Service.PrepareAndExecuteRequest: Request for `Meta.prepareAndExecute(Meta.StatementHandle, String, long, int, Meta.PrepareCallback)`.
Service.PrepareRequest: Request for `Meta.prepare(Meta.ConnectionHandle, String, long)`.
Service.PrepareResponse: Response from `Service.PrepareRequest`.
Service.Request: Base class for all service request messages.
Service.Response: Base class for all service response messages.
Service.ResultSetResponse: Response that contains a result set.
Service.RollbackRequest: An RPC request to invoke a rollback on a Connection.
Service.RollbackResponse: An RPC response from invoking rollback on a Connection.
Service.RpcMetadataResponse: Response that includes information about the server that handled an RPC.
Service.SchemasRequest: Request for `Meta.getSchemas(Meta.ConnectionHandle, String, Meta.Pat)`.
Service.SyncResultsRequest: Request for `Service.apply(SyncResultsRequest)`
Service.SyncResultsResponse: Response for `Service.apply(SyncResultsRequest)`.
Service.TablesRequest: Request for `Meta.getTables(Meta.ConnectionHandle, String, org.apache.calcite.avatica.Meta.Pat, org.apache.calcite.avatica.Meta.Pat, java.util.List)`
Service.TableTypesRequest: Request for `Meta.getTableTypes(Meta.ConnectionHandle)`.
Service.TypeInfoRequest: Request for `Meta.getTypeInfo(Meta.ConnectionHandle)`.
TypedValue: Value and type.

Enum Summary
AuthenticationType: An enumeration for support types of authentication for the HttpServer.
AvaticaRemoteConnectionProperty: Enumeration of Avatica remote driver's built-in connection properties.
Driver.Serialization: Defines the method of message serialization used by the Driver
HostnameVerificationConfigurable.HostnameVerification: Describes the support hostname verification methods of `AvaticaHttpClient`.
MetaDataOperation: Identifies an operation from `DatabaseMetaData` which returns a `ResultSet`.

Exception Summary
AvaticaRuntimeException: A `RuntimeException` thrown by Avatica with additional contextual information about what happened to cause the Exception.

## Package org.apache.calcite.avatica.remote Description

JDBC driver that uses remote procedure calls.