All Versions
38
Latest Version
Avg Release Cycle
22 days
Latest Release
839 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v1.30.0
June 08, 2020 -
v1.29.0 Changes
April 22, 2020π gRPC Java 1.29.0 Release Notes
Behavioral Changes
- π core, grpclb: change policy selection strategy for Grpclb policy (move logic of querying SRV into Grpclb's own resolver) (#6723). System property
io.grpc.internal.DnsNameResolverProvider.enable_grpclb
is eliminated, grpc-grpclb dependency implicitly enables querying SRV records since v1.24.2
π New Features
- core:
ServerInterceptors.useInputStreamMessages()
now preserves theKnownLength
interface when wrapping InputStream (#6852). This should prevent certain optimizations from being disabled when using useInputStreamMessages - core:
ServerInterceptors.useInputStreamMessages()
anduseMarshalledMessages()
now preserve the SchemaDescriptor, so the methods are now compatible with the reflection service (#6851)
π Bug Fixes
- core: Fix IllegalStateException if remote-specified decompressor is unknown (#6864)
- core: keep round_robin lb subchannel in TRANSIENT_FAILURE until becoming READY (#6657). This avoids RPC being indefinitely queued when subchannels are bouncing back and forth between CONNECTING and TRANSIENT_FAILURE
- π netty: fixed a bug when grpc-netty and grpc-netty-shaded were both used, which could result in "ClassCastException: io.netty.util.AsciiString cannot be cast to io.grpc.netty.shaded.io.netty.util.AsciiString" (#6765)
- netty: Prevent thread interruption during server start from leaking socket (#6867)
- π okhttp: fix incorrect connection-level flow control handling at beginning of connection (#6742). This only impacted users of
OkHttpChannelBuilder.flowControlWindow()
, who seem to be few since this bug was not reported sooner - π core: A Java 9+ ABI compatibility issue with java.nio.ByteBuffer is fixed (#6839). This only impacted users manually compiling grpc-java with JDK 9+ and then using it as a library for applications that run with JDK 8- (e.g., on Android). This does not impact the pre-built JARs on Maven Central
- π core: fixed a bug in health check config propagation. (#6804)
- π benchmarks: some netty benchmarks failed to start and are now fixed (#6877). This was a regression introduced in v1.23.0
π Documentation
- β Add Javadoc for grpc-services and grpc-grpclb to the grpc-all project. This increases the number of classes shown at https://grpc.io/grpc-java/javadoc/
- examples: Add a JWT authentication example (#5915)
Dependencies
- β¬οΈ Bump guava to 28.2-android (#6772)
- β¬οΈ Bump netty to 4.1.48.Final, bump tcnative to 2.0.30.Final (#6845)
- β¬οΈ Bump truth version to 1.0.1 (#6754)
Compiling
- π android: add grpc-android into main build (#6793). Compiling with
-PskipAndroid=false
(default) includes building grpc-android module, which requires Android SDK
Acknowledgements
@chrisschek
@elharo Elliotte Rusty Harold
@herbyderby Chris Nokleberg
@markb74
@ST-DDT - π core, grpclb: change policy selection strategy for Grpclb policy (move logic of querying SRV into Grpclb's own resolver) (#6723). System property
-
v1.28.1 Changes
April 03, 2020π Bug Fixes
- xds: implement more clear specifications for locality filtering (allow localities with 0 endpoint, ignore localities with 0 weight, check for locality priority continuity). (#6875)
-
v1.28.0 Changes
March 10, 2020π gRPC Java 1.28.0 Release Notes
API Changes
- core: service config parsing now validates the final config object via
LoadBalancerProvider#parseLoadBalancingPolicyConfig
. LoadBalancer developers should use parsed config(loadBalancingPolicyConfig
) inResolvedAddresses
instead of deprecated attributeio.grpc.LoadBalancer.ATTR_LOAD_BALANCING_CONFIG
. - π core: remove stickiness from round robin (#6698)
Behavioral Changes
- core, grpclb: change policy selection strategy for Grpclb policy (take one: eliminate special logic for deciding grpclb policy in core) (#6637)
- gRPCLB policy selection is being stabilized according to this gRFC. gRPCLB policy will not be automatically selected even if there are SRV addresses resolved. You need to explicitly specify the selection by service config (in TXT records, or via
ManagedChannelBuilder#defaultServiceConfig
orManagedChannelBuilder#defaultLoadBalancingPolicy
).
- gRPCLB policy selection is being stabilized according to this gRFC. gRPCLB policy will not be automatically selected even if there are SRV addresses resolved. You need to explicitly specify the selection by service config (in TXT records, or via
π New Features
- π This release adds an experimental client side implementation of xDSv2 APIs. This allows a gRPC client written in Java to receive configuration from an xDSv2 API compatible server and use that configuration to load balance RPCs. In this release, only the virtual host matching and cluster route action is supported. More features will be added in future.
π Bug Fixes
- netty: fix a deadlock on start gRPC server (#6601)
- netty: negotiated application level protocol is now checked against the correct ALPN list in the SslContext settings
- okhttp: fix incorrect connection-level flow control handling at beginning of connection.
- alts: Fix using the wrong way of checking if Conscrypt is available (#6672)
- π» grpclb: grpclb can handle empty address from LoadBalancer instead of throwing exception
- alts: do not exclude opencensus-api from google-oauth2's transitive dependencies (#6607)
- grpc-alts was broken since 1.27.0 release for missing opencensus-api used in google-oauth2. This was due to opencensus-api dependency was eliminated from grpc-core. Now it should be included.
π Documentation
- stub,examples: Clarify CallStreamObserver's Javadoc (#6561)
Dependencies
- β¬οΈ Bump Netty to 4.1.45.Final and tcnative to 2.0.28.Final
- β¬οΈ Bump okhttp to 2.7.4
- β¬οΈ Bump google-auth-library-credentials and google-auth-library-oauth2-http to 0.20.0
Acknowledgements
@chrisschek
@cushon Liam Miller-Cushon
@elharo Elliotte Rusty Harold
@gfelbing Georg Welzel
@hatahet Ziad Hatahet
@leventov Roman Leventov
@sourabhsparkala Sourabh Sarvotham Parkala
@ZhenLian Zhen Lian - core: service config parsing now validates the final config object via
-
v1.27.2 Changes
February 26, 2020π Bug Fixes
- π» grpclb: grpclb can handle empty address from LoadBalancer instead of throwing exception
-
v1.27.1
February 13, 2020 -
v1.27.0
January 28, 2020 -
v1.26.1
February 12, 2020 -
v1.26.0
December 18, 2019 -
v1.25.0 Changes
November 06, 2019Dependencies
- β¬οΈ Bumped
netty
to 4.1.42 - Bumped
error_prone_annotations
to 2.3.3 - β¬οΈ Bumped
perfmark
to 0.19.0 - β¬οΈ Bumped
guava
to 28.1 - β¬οΈ Bumped
gson
to 2.8.5 - β¬οΈ Bumped
protobuf
to 3.10.0 - β
Tests bumped
truth
to 1.0
π Bug Fixes
- Rolled forward the fix for β
ClientCall.Listener.onClose
never called when the call is interruptedβ (#6255) - π netty: fixed the bug that users using proxy may experience hang when starting channel (#6159)
- π alts: fixed potential memory leak when alts negotiation is aborted (#6186)
- π alts: fixed wrong
ComputeEngineChannelBuilder
class signature (#6367) - bom: now specifying pom type for
protoc-gen-grpc-java
(#6247) - β netty: Check for
TE: trailers
header after checkingContent-Type
. This prevents confusing warnings when a non-grpc client contacts a grpc server - bazel: Fixed typo in
repositories.bzl
formaven_install override_targets
;io.grpc:grpc-core
was pointing to a non-existent target name - π okhttp: fixed header scheme that did not match transport type (#6264). OkHttp users using plaintext may experience errors when communicating with dotnet gRPC server is fixed.
API Changes
- api:
MethodDescriptor
βssafe
andidempotent
methods are now considered stable and set appropriately by the generated code when the proto contains the RPC optionoption idempotency_level = NO_SIDE_EFFECTS;
oroption idempotency_level = IDEMPOTENT;
. grpc-java is not using these values directly, but interceptors are free to observe them - protobuf:
StatusProto.fromStatusAndTrailers
fall-back to status if trailers are not available (#6278). Previously it returnednull
- bazel: Removed deps from
grpc_java_repositories()
thatprotobuf_deps()
provides ManageChannelBuilder.usePlaintext()
(with no argument) is now stabilized.
π New Features
- okhttp: add full implementation of HPACK header compression (#6026). Patched HTTP header compression implementation for writer from OkHttp3, which was missing in OkHttp2.
- bazel: added support for
--incompatible_load_cc_rules_from_bzl
and--incompatible_load_proto_rules_from_bzl
- netty: Implicitly use Conscrypt when it is available and is necessary. If tcnative is not available and the JVM is Java 7 or 8, then grpc will use Conscrypt if present. This allows using Conscrypt by just adding Conscrypt to the classpath
- π alts: Use Conscrypt when available. This provides Java 7 support and gives a huge performance boost on Java 8. Java 7 update 121 and Java 8 update 111 (released three years ago) are required.
- api: Add
EquivalentAddressGroup.ATTR_AUTHORITY_OVERRIDE
which allows NameResolvers to specify different names for different backends within one Channel which may be especially useful for certain TLS deployments (#6126). Note that NameResolvers must receive the authority names from a trusted source (e.g., local file, remote server with TLS) - core: Propagate
EquivalentAddressGroup
Attributes inRoundRobinLoadBalancer
. This allowsNameResolver
s to set attributes likeATTR_AUTHORITY_OVERRIDE
with round robin - api: Added
ManagedChannelBuilder.offloadExecutor()
for expensive or blocking operations like DNS resolution. Previously an internal executor was used that couldnβt be overridden. The executor is also passed toNameResolver
s viaArgs.getOffloadExecutor()
- π grpclb: Add dns NameResolver to
io.grpc.grpclb
that has SRV record lookup enabled by default (#6298). This allows using grpclb without the-Dio.grpc.internal.DnsNameResolverProvider.enable_grpclb=true
system property. Note that grpclb is still experimental and deprecated. In particular, we plan to change grpclb policy selection which together with this change provides a path forward for grpclb to function without custom support in grpc-core; see gRFC A26
Acknowledgements
- Anar Sultanov (@AnarSultanov)
- Elliotte Rusty Harold (@elharo)
- Grant Oakley (@groakley)
- Przemek Piotrowski (@ppiotrow)
- Steve Rao (@steverao)
- edr (@enguerrand)
- β¬οΈ Bumped