Implementations of service provider interfaces (SPIs) that extend the Oracle JDBC Driver for integration with cloud services and other specialized APIs. These SPI implementations are referred as "providers" for short.
Each module of this project contains a set of providers. Three of these modules contain providers for a particular cloud platform:
And the last one contains a provider for Open Telemetry:
SSLContext
that contains keys, certificates, and other information
for TLS communication.
jdbc:oracle:thin:@config-{provider-name}://[path][?parameters]For example, the URL below identifies and configures the Centralized Config Provider for Azure:
jdbc:oracle:thin:@config-azure://myappconfig?key=/sales_app1/&label=devURLs of this form may be used with any framework, library, or tool that already accepts a JDBC URL. For instance, the URL might appear in the application.properties file of a Spring application: ```properties spring.datasource.url=jdbc:oracle:thin:@config-azure://myappconfig?key=/sales_app1/&label=dev ``` ### Using Resource Providers Providers of individual resources are identified and configured using connection properties of the following form: ``` oracle.jdbc.provider.{resource-type}={provider-name} oracle.jdbc.provider.{resource-type}.{parameter-name}={parameter-value} ``` For example, the connection properties below would identify and configure the OAUTH Token Provider for OCI: ```properties oracle.jdbc.provider.accessToken=ojdbc-provider-oci-token oracle.jdbc.provider.accessToken.scope=urn:oracle:db::id::ocid1.compartment.oc1..aaaaaaaajx2fpr7szach4vpdsjegvkbjirronlnwkxiivwmp6qfrissxgyia ``` These connection properties can appear in a [connection properties file](https://docs.oracle.com/en/database/oracle/oracle-database/23/jajdb/oracle/jdbc/OracleConnection.html#CONNECTION_PROPERTY_CONFIG_FILE), or anywhere else that JDBC connection properties might be configured. ## Installation Providers are installed by declaring a dependency on one or more modules of this project: [ojdbc-provider-oci](ojdbc-provider-oci/README.md#installation) [ojdbc-provider-azure](ojdbc-provider-azure/README.md#installation) [ojdbc-provider-gcp](ojdbc-provider-gcp/README.md#installation) [ojdbc-provider-opentelemetry](ojdbc-provider-opentelemetry/README.md#installation) Each module listed above is distributed on the Maven Central Repository as a separate jar file. Coordinates can be found by visiting the links above. ## Examples Examples for Oracle JDBC Driver Extensions can be found at [ojdbc-provider-samples/src/main/java](./ojdbc-provider-samples/src/main/java) ## Help Are you having trouble with Oracle JDBC Driver Extensions? We want to help! For help programming with Oracle JDBC Driver Extensions: - Ask questions on Stack Overflow tagged with [[ojdbc-providers]](https://stackoverflow.com/tags/ojdbc-providers). The development team monitors Stack Overflow regularly. - Ask a question on Discord channel #java_jdbc. Issues may be opened as described in our [contribution guide](./CONTRIBUTING.md). ## Contributing This project welcomes contributions from the community. Before submitting a pull request, please [review our contribution guide](./CONTRIBUTING.md) ## Security Please consult the [security guide](./SECURITY.md) for our responsible security vulnerability disclosure process ## Building from Source For general usage, it is not necessary to compile and build the whole project. Pre-built artifacts are available on Maven Central. If you want to try out the latest changes, this project can be built with: ```sh mvn clean install -DskipTests ``` The command above will publish jars to your local Maven cache. ## License Copyright (c) 2023 Oracle and/or its affiliates. Released under the Universal Permissive License v1.0 as shown at