vitess.io/vitess@v0.16.2/java/README.md (about) 1 # Overview 2 3 This subdirectory contains all Vitess Java code. 4 5 It is split in the following subdirectories (Maven modules): 6 7 * **client:** Our Java client library. 8 * See [VTGateConnection.java](https://github.com/vitessio/vitess/blob/main/java/client/src/main/java/io/vitess/client/VTGateConnection.java) and [VTGateBlockingConnection.java](https://github.com/vitessio/vitess/blob/main/java/client/src/main/java/io/vitess/client/VTGateBlockingConnection.java) for the API. 9 * Note: The library is agnostic of the underlying RPC system and only defines an interface for that. 10 * In open-source, the library must always be used together with the code in `grpc-client`. 11 * **grpc-client:** Implements the client's RPC interface for gRPC. 12 * **jdbc:** JDBC driver implementation for Vitess. 13 * **example:** Examples for using the `client` or the `jdbc` module. 14 * **hadoop:** Vitess support for Hadoop. See [documentation for details](hadoop/src/main/java/io/vitess/hadoop/README.md). 15 16 **Note:** The `artifactId` for each module listed above has the prefix `vitess-` i.e. you will have to look for `vitess-jdbc` and not `jdbc`. 17 18 TODO(mberlin): Mention Maven Central once we started publishing artifacts there. 19 20 # Adding new Dependencies 21 22 When submitting contributions which require new dependencies, please follow these guidelines: 23 24 * Put every directly used dependency into the module's `dependencies` section (e.g. in `jdbc/pom.xml` for changes to the JDBC code). 25 * `make java_test` (which calls `mvn verify` in the `/java` directory) will run `mvn dependency:analyze` and fail if you got this wrong. 26 * Limit the scope of test dependencies to `<scope>test</scope>`. 27 * Do not include the version number in the module's pom.xml. Instead, add the dependency to the `dependencyManagement` section in `/java/pom.xml` and include the version number there. 28 * Sort dependencies in alphabetic order. Modules only: Put all dependencies with limited scope (e.g. `test`) in a separate `block` and sort it alphabetically as well (see `/java/client/pom.xml` for an example). 29 * Feel free to separate groups of dependencies by newlines (e.g. all io.vitess.* dependencies are a group). 30