This subdirectory contains all Vitess Java code.
It is split in the following subdirectories (Maven modules):
- client: Our Java client library.
- See VTGateConnection.java and VTGateBlockingConnection.java for the API.
- Note: The library is agnostic of the underlying RPC system and only defines an interface for that.
- In open-source, the library must always be used together with the code in
grpc-client
.
- grpc-client: Implements the client's RPC interface for gRPC.
- jdbc: JDBC driver implementation for Vitess.
- example: Examples for using the
client
or thejdbc
module. - hadoop: Vitess support for Hadoop. See documentation for details.
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
.
Published artifacts can be found on Maven Central.
When submitting contributions which require new dependencies, please follow these guidelines:
- Put every directly used dependency into the module's
dependencies
section (e.g. injdbc/pom.xml
for changes to the JDBC code).make java_test
(which callsmvn verify
in the/java
directory) will runmvn dependency:analyze
and fail if you got this wrong.
- Limit the scope of test dependencies to
<scope>test</scope>
. - 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. - Sort dependencies in alphabetic order. Modules only: Put all dependencies with limited scope (e.g.
test
) in a separateblock
and sort it alphabetically as well (see/java/client/pom.xml
for an example). - Feel free to separate groups of dependencies by newlines (e.g. all io.vitess.* dependencies are a group).