googleapis/gax-java

Name: gax-java

Owner: Google APIs

Description: Google API Extensions for Java - shared runtime for clients generated by googleapis/toolkit

Created: 2016-02-01 21:33:22.0

Updated: 2018-05-24 14:21:59.0

Pushed: 2018-05-24 14:21:57.0

Homepage:

Size: 10652

Language: Java

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Google API Extensions for Java

Build Status

Code Coverage

Google API Extensions for Java (GAX Java) is a library which aids in the development of client libraries for server APIs, based on GRPC and Google API conventions.

Application code will rarely need to use most of the classes within this library directly, but code generated automatically from the API definition files can use services such as paged list iteration, request batching, and polling of long-running operations to provide a more convenient and idiomatic API surface to callers.

Currently, this library shouldn't be used independently from google-cloud-java, otherwise there is a high risk of diamond dependency problems, because google-cloud-java uses beta features from this library which can change in breaking ways between versions. See VERSIONING for more information.

Quickstart

If you are using Maven, add this to your pom.xml file

endency>
roupId>com.google.api</groupId>
rtifactId>gax</artifactId>
ersion>1.26.0</version>
pendency>
endency>
roupId>com.google.api</groupId>
rtifactId>gax-grpc</artifactId>
ersion>1.26.0</version>
pendency>

If you are using Gradle, add this to your dependencies

ile 'com.google.api:gax:1.26.0',
om.google.api:gax-grpc:1.26.0'

If you are using SBT, add this to your dependencies

aryDependencies += "com.google.api" % "gax" % "1.26.0"
aryDependencies += "com.google.api" % "gax-grpc" % "1.26.0"
Java Versions

Java 7 or above is required for using this library.

Contributing

Contributions to this library are always welcome and highly encouraged.

See the CONTRIBUTING documentation for more information on how to get started.

Versioning

This library follows Semantic Versioning, but with some additional qualifications:

  1. Components marked with @BetaApi are considered to be “0.x” features inside a “1.x” library. This means they can change between minor and patch releases in incompatible ways. These features should not be used by any library “B” that itself has consumers, unless the components of library B that use @BetaApi features are also marked with @BetaApi. Features marked as @BetaApi are on a path to eventually become “1.x” features with the marker removed.

    Special exception for google-cloud-java: google-cloud-java is allowed to depend on @BetaApi features without declaring the consuming code @BetaApi, because gax-java and google-cloud-java move in step with each other. For this reason, gax-java should not be used independently of google-cloud-java.

  2. Components marked with @InternalApi are technically public, but are only public for technical reasons, because of the limitations of Java's access modifiers. For the purposes of semver, they should be considered private.

  3. Components marked with @InternalExtensionOnly are stable for usage, but not for extension. Thus, methods will not be removed from interfaces marked with this annotation, but methods can be added, thus breaking any code implementing the interface. See the javadocs for more details on other consequences of this annotation.

Submodule notes
Feature notes
Repository Structure

This repository contains the following java packages.

gax
gax-grpc
gax-httpjson
License

BSD - See LICENSE for more information.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.