This is the public port of cl/238445847 Fixes #5319 |
||
|---|---|---|
| .. | ||
| android | ||
| example-alts | ||
| example-gauth | ||
| example-kotlin | ||
| example-tls | ||
| gradle/wrapper | ||
| src | ||
| AUTHENTICATION_EXAMPLE.md | ||
| BUILD.bazel | ||
| README.md | ||
| WORKSPACE | ||
| build.gradle | ||
| gradlew | ||
| gradlew.bat | ||
| pom.xml | ||
| settings.gradle | ||
README.md
grpc Examples
The examples require grpc-java to already be built. You are strongly encouraged to check out a git release tag, since there will already be a build of grpc available. Otherwise you must follow COMPILING.
You may want to read through the Quick Start Guide before trying out the examples.
Basic examples
To build the examples
-
Install gRPC Java library SNAPSHOT locally, including code generation plugin (Only need this step for non-released versions, e.g. master HEAD).
-
Run in this directory:
$ ./gradlew installDist
This creates the scripts hello-world-server, hello-world-client,
route-guide-server, route-guide-client, etc. in the
build/install/examples/bin/ directory that run the examples. Each
example requires the server to be running before starting the client.
For example, to try the hello world example first run:
$ ./build/install/examples/bin/hello-world-server
And in a different terminal window run:
$ ./build/install/examples/bin/hello-world-client
That's it!
Please refer to gRPC Java's README and tutorial for more information.
Maven
If you prefer to use Maven:
-
Install gRPC Java library SNAPSHOT locally, including code generation plugin (Only need this step for non-released versions, e.g. master HEAD).
-
Run in this directory:
$ mvn verify
$ # Run the server
$ mvn exec:java -Dexec.mainClass=io.grpc.examples.helloworld.HelloWorldServer
$ # In another terminal run the client
$ mvn exec:java -Dexec.mainClass=io.grpc.examples.helloworld.HelloWorldClient
Bazel
If you prefer to use Bazel:
$ bazel build :hello-world-server :hello-world-client
$ # Run the server
$ bazel-bin/hello-world-server
$ # In another terminal run the client
$ bazel-bin/hello-world-client
Other examples
-
Secure channel examples
Unit test examples
Examples for unit testing gRPC clients and servers are located in examples/src/test.
In general, we DO NOT allow overriding the client stub.
We encourage users to leverage InProcessTransport as demonstrated in the examples to
write unit tests. InProcessTransport is light-weight and runs the server
and client in the same process without any socket/TCP connection.
For testing a gRPC client, create the client with a real stub using an InProcessChannel, and test it against an InProcessServer with a mock/fake service implementation.
For testing a gRPC server, create the server as an InProcessServer, and test it against a real client stub with an InProcessChannel.
The gRPC-java library also provides a JUnit rule, GrpcCleanupRule, to do the graceful shutdown boilerplate for you.
Even more examples
A wide variety of third-party examples can be found here.