xref: /aosp_15_r20/external/sdk-platform-java/api-common-java/README.md (revision 882aa7c72c3cd3b66e72a261bdd69b93f7de7670)
1*882aa7c7SMatt GilbrideAPI Common for Java
2*882aa7c7SMatt Gilbride==============================
3*882aa7c7SMatt Gilbride
4*882aa7c7SMatt Gilbride[![Build Status](https://travis-ci.org/googleapis/api-common-java.svg?branch=main)](https://travis-ci.org/googleapis/api-common-java)
5*882aa7c7SMatt Gilbride
6*882aa7c7SMatt Gilbride- [Documentation](https://googleapis.dev/java/api-common/latest/index.html)
7*882aa7c7SMatt Gilbride
8*882aa7c7SMatt GilbrideAPI Common for Java is a library for foundational types relating to Google
9*882aa7c7SMatt GilbrideAPIs. It currently contains the following packages:
10*882aa7c7SMatt Gilbride- core: Core library containing API stability annotations and wrappers around
11*882aa7c7SMatt Gilbride  Guava types
12*882aa7c7SMatt Gilbride- pathtemplate: Path Template library for manipulating strings that are
13*882aa7c7SMatt Gilbride  formatted as Google API resource names.
14*882aa7c7SMatt Gilbride- resourcenames: Resource Name library used by generated resource name types
15*882aa7c7SMatt Gilbride
16*882aa7c7SMatt GilbrideJava Versions
17*882aa7c7SMatt Gilbride-------------
18*882aa7c7SMatt Gilbride
19*882aa7c7SMatt GilbrideJava 8 or above is required for using this library.
20*882aa7c7SMatt Gilbride
21*882aa7c7SMatt GilbrideTo build this project, JDK 11 or above is required.
22*882aa7c7SMatt GilbrideThe build produces Java bytecode targeted for Java 8.
23*882aa7c7SMatt Gilbride
24*882aa7c7SMatt GilbrideThe project uses Maven to build.
25*882aa7c7SMatt Gilbride
26*882aa7c7SMatt GilbrideVersioning
27*882aa7c7SMatt Gilbride----------
28*882aa7c7SMatt Gilbride
29*882aa7c7SMatt GilbrideThis library follows [Semantic Versioning](http://semver.org/), but with some
30*882aa7c7SMatt Gilbrideadditional qualifications:
31*882aa7c7SMatt Gilbride
32*882aa7c7SMatt Gilbride1. Components marked with `@BetaApi` are considered to be "0.x" features inside
33*882aa7c7SMatt Gilbride   a "1.x" library. This means they can change between minor and patch releases
34*882aa7c7SMatt Gilbride   in incompatible ways. These features should not be used by any library "B"
35*882aa7c7SMatt Gilbride   that itself has consumers, unless the components of library B that use
36*882aa7c7SMatt Gilbride   `@BetaApi` features are also marked with `@BetaApi`. Features marked as
37*882aa7c7SMatt Gilbride   `@BetaApi` are on a path to eventually become "1.x" features with the marker
38*882aa7c7SMatt Gilbride   removed.
39*882aa7c7SMatt Gilbride1. Components marked with `@InternalApi` are technically public, but are only
40*882aa7c7SMatt Gilbride   public for technical reasons, because of the limitations of Java's access
41*882aa7c7SMatt Gilbride   modifiers. For the purposes of semver, they should be considered private.
42*882aa7c7SMatt Gilbride
43*882aa7c7SMatt GilbrideThis library is currently in major version one (``1.y.z``), which means that
44*882aa7c7SMatt Gilbrideany public API not specifically marked as `@BetaApi` or `@InternalApi` can be considered
45*882aa7c7SMatt Gilbridestable. They will not change without incrementing the major version to 2.x or later,
46*882aa7c7SMatt Gilbrideand probably not then.
47*882aa7c7SMatt Gilbride
48*882aa7c7SMatt GilbrideLicense
49*882aa7c7SMatt Gilbride-------
50*882aa7c7SMatt Gilbride
51*882aa7c7SMatt GilbrideBSD 3-Clause - See [LICENSE] for more information.
52*882aa7c7SMatt Gilbride
53*882aa7c7SMatt GilbrideBuild and Test
54*882aa7c7SMatt Gilbride--------------
55*882aa7c7SMatt GilbrideTo build this library, please do the following.
56*882aa7c7SMatt Gilbride
57*882aa7c7SMatt Gilbride```sh
58*882aa7c7SMatt Gilbridemvn clean install
59*882aa7c7SMatt Gilbride```
60*882aa7c7SMatt Gilbride
61*882aa7c7SMatt GilbrideAfter making changes, run the following commands to format your code and test your changes.
62*882aa7c7SMatt Gilbride
63*882aa7c7SMatt Gilbride```sh
64*882aa7c7SMatt Gilbridemvn fmt:format
65*882aa7c7SMatt Gilbridemvn test
66*882aa7c7SMatt Gilbride```
67*882aa7c7SMatt Gilbride
68*882aa7c7SMatt Gilbride[CONTRIBUTING]:https://github.com/googleapis/api-common-java/blob/main/CONTRIBUTING.md
69*882aa7c7SMatt Gilbride[LICENSE]: https://github.com/googleapis/api-common-java/blob/main/LICENSE
70*882aa7c7SMatt Gilbride
71