vitess-gh/java
Leo Xuzhang Lin 421e45abdc Use recommended version combination
Signed-off-by: Leo Xuzhang Lin <llin@hubspot.com>
2018-12-21 11:37:59 -05:00
..
client java: Bump SNAPSHOT version to 3.1.0-SNAPSHOT after Vitess release 3.0. 2018-12-13 10:51:23 -05:00
example java: Bump SNAPSHOT version to 3.1.0-SNAPSHOT after Vitess release 3.0. 2018-12-13 10:51:23 -05:00
grpc-client java: Bump SNAPSHOT version to 3.1.0-SNAPSHOT after Vitess release 3.0. 2018-12-13 10:51:23 -05:00
hadoop java: Bump SNAPSHOT version to 3.1.0-SNAPSHOT after Vitess release 3.0. 2018-12-13 10:51:23 -05:00
jdbc Merge pull request #4441 from systay/jdbc-cleanup 2018-12-20 10:47:10 -05:00
README.md java: Cleaned up Maven configurations. 2017-04-03 10:02:05 -07:00
pom.xml Use recommended version combination 2018-12-21 11:37:59 -05:00

README.md

Overview

This subdirectory contains all Vitess Java code.

It is split in the following subdirectories (Maven modules):

  • client: Our Java client library.
    • See VTGateConn.java and VTGateBlockingConn.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 the "jdbc" 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.

TODO(mberlin): Mention Maven Central once we started publishing artifacts there.

Adding new Dependencies

When submitting contributions which require new dependencies, please follow these guidelines:

  • Put every directly used dependency into the module's dependencies section (e.g. in jdbc/pom.xml for changes to the JDBC code).
    • make java_test (which calls mvn verify in the /java directory) will run mvn 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 separate "block" 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).