Skip to content

Commit

Permalink
bump: grpc-core, grpc-interop-testing, ... 1.60.0 (was 1.58.0) (#1884)
Browse files Browse the repository at this point in the history
* bump: grpc-core, grpc-interop-testing, ... 1.60.0 (was 1.58.0)

* All the places

* Workaround for Netty not passing along authority anymore.

* Mima, pass along the service name anyway for good measure

* fix test

---------

Co-authored-by: Johan Andrén <[email protected]>
  • Loading branch information
scala-steward and johanandren authored Jan 22, 2024
1 parent bd42113 commit 855b65a
Show file tree
Hide file tree
Showing 10 changed files with 43 additions and 31 deletions.
2 changes: 1 addition & 1 deletion benchmark-java/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ run / javaOptions ++= List("-Xms1g", "-Xmx1g", "-XX:+PrintGCDetails", "-XX:+Prin
// generate both client and server (default) in Java
akkaGrpcGeneratedLanguages := Seq(AkkaGrpc.Java)

val grpcVersion = "1.58.1" // checked synced by VersionSyncCheckPlugin
val grpcVersion = "1.60.0" // checked synced by VersionSyncCheckPlugin

val runtimeProject = ProjectRef(file("../"), "akka-grpc-runtime")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class AkkaGrpcPluginExtension {

static final String PROTOC_PLUGIN_SCALA_VERSION = "2.12"

static final String GRPC_VERSION = "1.58.1" // checked synced by VersionSyncCheckPlugin
static final String GRPC_VERSION = "1.60.0" // checked synced by VersionSyncCheckPlugin

static final String PLUGIN_CODE = 'com.lightbend.akka.grpc.gradle'

Expand Down
2 changes: 1 addition & 1 deletion plugin-tester-java/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<maven-exec-plugin.version>3.0.0</maven-exec-plugin.version>
<akka.http.cors.version>1.1.0</akka.http.cors.version>
<akka.version>2.9.0</akka.version>
<grpc.version>1.58.1</grpc.version> <!-- checked synced by VersionSyncCheckPlugin -->
<grpc.version>1.60.0</grpc.version> <!-- checked synced by VersionSyncCheckPlugin -->
<project.encoding>UTF-8</project.encoding>
<build-helper-maven-plugin>3.3.0</build-helper-maven-plugin>
<protobuf-java.version>3.22.2</protobuf-java.version>
Expand Down
2 changes: 1 addition & 1 deletion plugin-tester-scala/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<maven.compiler.release>11</maven.compiler.release>
<akka.version>2.9.0</akka.version>
<akka.http.cors.version>0.4.2</akka.http.cors.version>
<grpc.version>1.58.1</grpc.version> <!-- checked synced by VersionSyncCheckPlugin -->
<grpc.version>1.60.0</grpc.version> <!-- checked synced by VersionSyncCheckPlugin -->
<project.encoding>UTF-8</project.encoding>
</properties>

Expand Down
2 changes: 1 addition & 1 deletion project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ object Dependencies {
val akkaHttp = "10.6.0"
val akkaHttpBinary = "10.6"

val grpc = "1.58.1" // checked synced by VersionSyncCheckPlugin
val grpc = "1.60.0" // checked synced by VersionSyncCheckPlugin

// Even referenced explicitly in the sbt-plugin's sbt-tests
// If changing this, remember to update protoc plugin version to align in
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# internal API
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.grpc.internal.AkkaDiscoveryNameResolverProvider.this")
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import scala.concurrent.duration.FiniteDuration
class AkkaDiscoveryNameResolverProvider(
discovery: ServiceDiscovery,
defaultPort: Int,
serviceName: String,
portName: Option[String],
protocol: Option[String],
resolveTimeout: FiniteDuration)(implicit ec: ExecutionContext)
Expand All @@ -26,7 +27,6 @@ class AkkaDiscoveryNameResolverProvider(
override def getDefaultScheme: String = "http"

override def newNameResolver(targetUri: URI, args: NameResolver.Args): AkkaDiscoveryNameResolver = {
require(targetUri.getAuthority != null, s"target uri should not have null authority, got [$targetUri]")
new AkkaDiscoveryNameResolver(discovery, defaultPort, targetUri.getAuthority, portName, protocol, resolveTimeout)
new AkkaDiscoveryNameResolver(discovery, defaultPort, serviceName, portName, protocol, resolveTimeout)
}
}
55 changes: 32 additions & 23 deletions runtime/src/main/scala/akka/grpc/internal/NettyClientUtils.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,38 @@

package akka.grpc.internal

import java.util.concurrent.TimeUnit
import javax.net.ssl.SSLContext
import akka.{ Done, NotUsed }
import akka.annotation.InternalApi
import akka.event.LoggingAdapter
import akka.grpc.{ GrpcClientSettings, GrpcResponseMetadata, GrpcSingleResponse }
import akka.stream.scaladsl.{ Flow, Keep, Source }
import io.grpc.{ CallOptions, MethodDescriptor }
import akka.grpc.GrpcClientSettings
import akka.grpc.GrpcResponseMetadata
import akka.grpc.GrpcSingleResponse
import akka.stream.scaladsl.Flow
import akka.stream.scaladsl.Keep
import akka.stream.scaladsl.Source
import akka.Done
import akka.NotUsed
import io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts
import io.grpc.netty.shaded.io.grpc.netty.NegotiationType
import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder
import io.grpc.netty.shaded.io.netty.handler.ssl.ApplicationProtocolConfig.{
Protocol,
SelectedListenerFailureBehavior,
SelectorFailureBehavior
}
import io.grpc.netty.shaded.io.netty.handler.ssl.{
ApplicationProtocolConfig,
ApplicationProtocolNames,
SslContext,
SslContextBuilder
}
import io.grpc.netty.shaded.io.netty.handler.ssl.ApplicationProtocolConfig.Protocol
import io.grpc.netty.shaded.io.netty.handler.ssl.ApplicationProtocolConfig.SelectedListenerFailureBehavior
import io.grpc.netty.shaded.io.netty.handler.ssl.ApplicationProtocolConfig.SelectorFailureBehavior
import io.grpc.netty.shaded.io.netty.handler.ssl.ApplicationProtocolConfig
import io.grpc.netty.shaded.io.netty.handler.ssl.ApplicationProtocolNames
import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext
import io.grpc.netty.shaded.io.netty.handler.ssl.SslContextBuilder
import io.grpc.CallOptions
import io.grpc.MethodDescriptor

import java.util.concurrent.TimeUnit
import javax.net.ssl.SSLContext
import scala.annotation.nowarn
import scala.concurrent.duration.FiniteDuration
import scala.concurrent.{ ExecutionContext, Future, Promise }
import scala.util.{ Failure, Success }
import scala.concurrent.ExecutionContext
import scala.concurrent.Future
import scala.concurrent.Promise
import scala.util.Failure
import scala.util.Success

/**
* INTERNAL API
Expand All @@ -48,15 +53,17 @@ object NettyClientUtils {
@nowarn("msg=deprecated")
var builder =
NettyChannelBuilder
// Not sure why netty wants to be able to shoe-horn the target into a URI... but ok,
// we follow their lead and encode the service name as the 'authority' of the URI.
.forTarget("//" + settings.serviceName)
// Used to be the way to pass the service name to the name resolver but
// Since grpc-core 1.60.0 Netty does no longer seem to pass the authority along, so we do that
// ourselves below (channel builder is not shared between different clients anyway).
.forTarget(s"//${settings.serviceName}")
.flowControlWindow(NettyChannelBuilder.DEFAULT_FLOW_CONTROL_WINDOW)
// TODO avoid nameResolverFactory #1092, then 'nowarn' can be removed above
.nameResolverFactory(
new AkkaDiscoveryNameResolverProvider(
settings.serviceDiscovery,
settings.defaultPort,
settings.serviceName,
settings.servicePortName,
settings.serviceProtocol,
settings.resolveTimeout))
Expand Down Expand Up @@ -177,7 +184,9 @@ object NettyClientUtils {
*/
@InternalApi
private def createNettySslContext(javaSslContext: SSLContext): SslContext = {
import io.grpc.netty.shaded.io.netty.handler.ssl.{ ClientAuth, IdentityCipherSuiteFilter, JdkSslContext }
import io.grpc.netty.shaded.io.netty.handler.ssl.ClientAuth
import io.grpc.netty.shaded.io.netty.handler.ssl.IdentityCipherSuiteFilter
import io.grpc.netty.shaded.io.netty.handler.ssl.JdkSslContext
// See
// https://github.com/netty/netty/blob/4.1/handler/src/main/java/io/netty/handler/ssl/JdkSslContext.java#L229-L309
val apn = new ApplicationProtocolConfig(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ class AkkaDiscoveryNameResolverProviderSpec
val provider = new AkkaDiscoveryNameResolverProvider(
discovery,
443,
serviceName = serviceName,
portName = None,
protocol = None,
resolveTimeout = 3.seconds)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ resolvers += "Akka library repository".at("https://repo.akka.io/maven")

organization := "com.lightbend.akka.grpc"

val grpcVersion = "1.58.1" // checked synced by VersionSyncCheckPlugin
val grpcVersion = "1.60.0" // checked synced by VersionSyncCheckPlugin

libraryDependencies ++= Seq(
"io.grpc" % "grpc-interop-testing" % grpcVersion % "protobuf-src",
Expand Down

0 comments on commit 855b65a

Please sign in to comment.