Commit Graph

2719 Commits

Author SHA1 Message Date
Eric Anderson 61179abcaa Set encoding for Java source to UTF-8
Our new example uses UTF-8 characters. On systems that don't have UTF-8 as
their default locale, the build fails without the override.
2015-02-24 23:02:50 +00:00
Nathan Mittler 360a84f42a Merge pull request #108 from nmittler/route_guide
Adding RouteGuide example and deleting others.
2015-02-24 13:59:07 -08:00
nmittler b897a89e78 Adding RouteGuide example and deleting others. 2015-02-24 13:58:16 -08:00
Nathan Mittler 494d273b05 Merge pull request #112 from nmittler/comments
Some comment cleanup in the Netty builders.
2015-02-24 13:17:47 -08:00
nmittler 23f513c0d2 Some comment cleanup in the Netty builders. 2015-02-24 13:16:21 -08:00
nmittler cc170418ea Fixing memory leak in stream removal policy
The stream removal policy was never being added as a handler, so it was
never starting its periodic timer to remove streams.
2015-02-24 12:55:26 -08:00
Tim Emiola 3b7d09bd34 Fixed Maven version 2015-02-24 03:58:40 -08:00
Tim Emiola 1cd1209c71 Adds a quickstart README for java with working instructions 2015-02-23 19:17:53 -08:00
Louis Ryan 425e3c0b7f Remove dead GrpcFramingUtil class 2015-02-23 17:44:23 -08:00
Mugur Marculescu 5b1bc15182 Create CONTRIBUTING.md
Adding a half filled contributing readme file.
2015-02-23 17:26:08 -08:00
Louis Ryan 95c6f5082c Udate TODOs to use Github user names 2015-02-23 12:46:28 -08:00
Eric Anderson 7b25aaf7e7 Remove target from .gitignore
We are no longer using Maven, so target/ directories should not longer
be ignored.
2015-02-23 11:59:13 -08:00
Eric Anderson 3af5add7b2 Add java_package proto option for portability
Some protoc Java environments have a package to put all proto namespaces
under, since proto namespaces aren't aligned with Java packages.
2015-02-23 10:38:08 -08:00
Jakob Buchgraber c6c0a3bf69 Remove user prefix from NettyServerBuilder.userBossEventLoopGroup(). Fixes #73 2015-02-20 13:43:20 -08:00
Jakob Buchgraber bd81a58c42 Add duration paramter to QPS Client and remove "server_threads" parameter.
The QpsClient no longer executes a fixed number of RPCs but runs for a period of time now (see #83).
After some discussion with @ejona86, we also agreed to remove the "server_threads" parameter
and to no longer use a `DirectExecutor` and thus run the QPS Server without any tweaks and
modifications. We believe/hope that this change will make the comparison between the C++ and
Java versions less "Apples and Oranges".

The "client_threads" parameter was renamed to "concurrent_calls" to better reflect what it
acutally does.

Furthermore, I updated the gradle build script to create separate executables for the
client and the server.

I also added a README.
2015-02-20 13:32:55 -08:00
Eric Anderson ee6c9d7b52 Add scary JavaDoc to Metadata.setAuthority() 2015-02-20 08:54:08 -08:00
Eric Anderson dbf7d529bd Make sure to close InputStream even if cancelled 2015-02-20 08:52:51 -08:00
Jakob Buchgraber f2f120922d Fix race for stream id in OkHttpClientTransport.
When running benchmarks using the okhttp transport with lots of
streams per channel we would see the occasional GOAWAY frame with
the server logging exceptions of the like "io.netty.handler.codec.http2.Http2Exception: Request stream 575 is behind the next expected stream 583".

As quickly identified by @ejona86, there is a race between creating a new stream id and writing the header on the wire.
Putting both under the same lock ensures that those two always go together.

After this change the errors disappeared. The perf impact should be small as the actual write to
the socket doesn't happen within the lock, but only the scheduling of the write.
2015-02-19 21:29:31 -08:00
Eric Anderson b10aaf8c77 Inform users they need Maven 3.2 to build our deps 2015-02-19 13:14:00 -08:00
Eric Anderson 746eccaced Fix inbound flow control for Calls.blockingServerStreamingCall
asyncServerStreamingCall provides the initial request(1).

Fixes #93
2015-02-19 09:37:09 -08:00
Tim Emiola 5c1b10a4f1 Removes the unused protos, updates the README to reflect the protos in use 2015-02-19 07:52:13 -08:00
Tim Emiola 5694716343 Complete the change s/Greetings/Greeter 2015-02-18 17:43:41 -08:00
Tim Emiola e342471965 Updates generated code to reflect the proto changes in #19 2015-02-18 17:22:46 -08:00
Louis Ryan 161ac95300 Allow IntelliJ to refer to generated sources for benchmark protos 2015-02-18 16:14:24 -08:00
Jakob Buchgraber 07d0917b94 Add ServerImpl#awaitTerminated() method. Fixes #80 2015-02-18 16:00:34 -08:00
Jakob Buchgraber 246e8b52bb Add build file and instructions to examples directory. Fixes #43 2015-02-18 15:58:27 -08:00
Jakob Buchgraber 62f4399e26 Add 10s timeouts to integration tests 2015-02-18 15:56:40 -08:00
Louis Ryan 65d64cd934 Add more detailed instructions for enabling protoc when built from repo 2015-02-18 14:51:42 -08:00
Eric Anderson 31179ec995 Allow running test scripts from any directory
This was actually a feature lost when swapping to Gradle, and is used by
the grpc/java Dockerfile. But it is useful in general.
2015-02-17 13:46:09 -08:00
Eric Anderson 5d37b29ef8 Use ./gradlew instead of gradle in run scripts 2015-02-17 12:44:28 -08:00
Jakob Buchgraber 7ddcdfd26c Define ALPN package as an extra variable, to be reused by subprojects. 2015-02-17 10:46:17 -08:00
Jakob Buchgraber 6ceb37ae4c Add QPS Server and TLS support to QPS Client. 2015-02-17 10:45:27 -08:00
Eric Anderson e26608fe91 Avoid MoreObjects for "old guava" compatibility
Some early grpc users on Android are using a very old Guava. They are
working on upgrading, but it will take time. This alone is not enough
for "old guava" compilibility; expect more to come.
2015-02-13 17:06:46 -08:00
Jakob Buchgraber 44574944b9 Move TLS certificates.
- Move certificates to src/main/resources folder.
- Update the code that loads the certificates to make use of Java's resources API.
2015-02-13 11:37:59 -08:00
Eric Anderson 303482ad3c Fix race in OkHttp test
transportTerminated() is called after closing the streams, so we can't
just wait on the streams and expect it to have been called.
2015-02-13 08:54:50 -08:00
Eric Anderson b55b200408 Add missing dependency to benchmarks project 2015-02-12 17:54:48 -08:00
Eric Anderson 74f231a6dd Remove Guava Service from ClientTransport
OkHttp no longer cancels all calls on shutdown, as we want to allow
graceful shutdown. Such cancelling behavior will likely be provided by
Channel in the future.
2015-02-12 15:20:22 -08:00
Eric Anderson db0d8ad8c4 Only run terminationRunnable once 2015-02-12 15:17:12 -08:00
Jakob Buchgraber 3fd7d0675c Add QPS Client to perform throughput and latency tests. 2015-02-11 17:47:45 -08:00
Eric Anderson 127270bd5f Fix shutdown race with negotiation
If the transport had started but negotiation had not completed then
previously channel would be null and shutdown would have no effect. Now
we set channel eagerly, but use a separate variable for determining if
it is safe for general use.
2015-02-10 12:47:53 -08:00
nabeelmian d2e35b0d02 Added utility class, ForwardingServerListener, that forwards calls to
underlying ServerCall.Listener.

-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=85910420
2015-02-09 13:09:19 -08:00
Eric Anderson 8aa79b39fc Improve thread safety of newStream()
OkHttp should now have a thread-safe implementation of newStream.
Previously 'lock' was not held when checking goAway and the checking in
AbstractClientTransport was redundant.

Netty was thread-safe, but it was very hard to tell what guarantees were
necessary and what guarantees each piece was providing.
2015-02-06 14:12:01 -08:00
Tim Emiola 813112ec42 Moves java overview project to a subdirectory 2015-02-06 13:09:20 -08:00
Eric Anderson c84ef8332e Simplify connection callback handling in Netty
Channel is available immediately after connect(), so register callbacks
immediately instead of delaying.

Setting channel is now delayed until it is actually safe to use.
2015-02-05 13:35:49 -08:00
Eric Anderson e6a7b6c8a9 netty: Don't throw exception on double close 2015-02-04 15:46:28 -08:00
Eric Anderson f3a90cd42b netty: Cancel stream if interrupted during create
Previously streams were being partially orphaned if there was an
interruption during stream creation. To handle cancellation,
AbstractClientStream's cancel() had to be changed remove the
"optimization" otherwise, again, the stream would be orphaned.
2015-02-04 15:46:27 -08:00
nmittler f12996086b Fixing compiler build on OS X (Clang) 2015-01-30 15:03:33 -08:00
Eric Anderson e5269899b7 Have test server print info about test client 2015-01-30 14:22:24 -08:00
Eric Anderson fb28ad235b Improve Gradle build of protoc grpc plugin
A Gradle protoc plugin is used for generating and compiling the grpc
codegen. The code organization was changed to match what Gradle expects.

Proto 3 is now required.
2015-01-30 10:19:32 -08:00
nmittler d0e883ac20 Fixing integration tests
Allowing MessageDeframer.request to be called after the deframer has
been closed.  The stub helpers blindly call request after receiving each
message.
2015-01-30 10:15:30 -08:00