You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pekko.apache.org by fa...@apache.org on 2025/09/18 20:58:21 UTC

(pekko-grpc) branch main updated: use scala converters (#513)

This is an automated email from the ASF dual-hosted git repository.

fanningpj pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko-grpc.git


The following commit(s) were added to refs/heads/main by this push:
     new 949b8e28 use scala converters (#513)
949b8e28 is described below

commit 949b8e2805a7e1e704de9f1ccf7176d59e5df4e2
Author: PJ Fanning <pj...@users.noreply.github.com>
AuthorDate: Thu Sep 18 21:58:16 2025 +0100

    use scala converters (#513)
    
    * use scala converters
    
    * compile issues
    
    * avoid pekko.dispatch.ExecutionContexts
---
 runtime/src/main/scala/org/apache/pekko/grpc/GrpcChannel.scala |  2 +-
 .../main/scala/org/apache/pekko/grpc/GrpcClientSettings.scala  |  8 ++++----
 .../scala/org/apache/pekko/grpc/internal/MetadataImpl.scala    |  7 ++++---
 .../org/apache/pekko/grpc/internal/PekkoHttpClientUtils.scala  |  6 +++---
 .../pekko/grpc/internal/PekkoNettyGrpcClientGraphStage.scala   |  9 ++++-----
 .../org/apache/pekko/grpc/internal/RequestBuilderImpl.scala    | 10 ++++------
 .../org/apache/pekko/grpc/internal/SingleParameterSink.scala   |  2 +-
 .../org/apache/pekko/grpc/internal/UnaryCallAdapter.scala      |  9 ++++-----
 .../scala/org/apache/pekko/grpc/javadsl/ServerReflection.scala |  2 +-
 .../main/scala/org/apache/pekko/grpc/javadsl/WebHandler.scala  |  2 +-
 .../src/main/scala/org/apache/pekko/grpc/scaladsl/Grpc.scala   |  2 +-
 11 files changed, 28 insertions(+), 31 deletions(-)

diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/GrpcChannel.scala b/runtime/src/main/scala/org/apache/pekko/grpc/GrpcChannel.scala
index f9b94f2c..9f68f1df 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/GrpcChannel.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/GrpcChannel.scala
@@ -16,6 +16,7 @@ package org.apache.pekko.grpc
 import java.util.concurrent.CompletionStage
 
 import scala.concurrent.Future
+import scala.jdk.FutureConverters._
 
 import org.apache.pekko
 import pekko.Done
@@ -23,7 +24,6 @@ import pekko.actor.ClassicActorSystemProvider
 import pekko.annotation.InternalStableApi
 import pekko.grpc.internal.{ ChannelUtils, InternalChannel }
 import pekko.grpc.scaladsl.Grpc
-import pekko.util.FutureConverters._
 
 final class GrpcChannel private (
     @InternalStableApi val settings: GrpcClientSettings,
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/GrpcClientSettings.scala b/runtime/src/main/scala/org/apache/pekko/grpc/GrpcClientSettings.scala
index 26be21ec..eba07229 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/GrpcClientSettings.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/GrpcClientSettings.scala
@@ -20,7 +20,6 @@ import pekko.discovery.{ Discovery, ServiceDiscovery }
 import pekko.discovery.ServiceDiscovery.{ Resolved, ResolvedTarget }
 import pekko.grpc.internal.HardcodedServiceDiscovery
 import pekko.util.Helpers
-import pekko.util.JavaDurationConverters._
 import com.typesafe.config.{ Config, ConfigValueFactory }
 import io.grpc.CallCredentials
 import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder
@@ -29,6 +28,7 @@ import javax.net.ssl.{ SSLContext, TrustManager }
 
 import scala.collection.immutable
 import scala.concurrent.duration.{ Duration, _ }
+import scala.jdk.DurationConverters._
 
 object GrpcClientSettings {
 
@@ -82,7 +82,7 @@ object GrpcClientSettings {
       implicit actorSystem: ClassicActorSystemProvider): GrpcClientSettings = {
     val clientConfiguration: Config =
       actorSystem.classicSystem.settings.config.getConfig("pekko.grpc.client").getConfig("\"*\"")
-    val resolveTimeout = clientConfiguration.getDuration("service-discovery.resolve-timeout").asScala
+    val resolveTimeout = clientConfiguration.getDuration("service-discovery.resolve-timeout").toScala
     val discovery = Discovery.get(actorSystem).discovery
     withConfigDefaults(serviceName, discovery, -1, resolveTimeout, clientConfiguration)
   }
@@ -99,7 +99,7 @@ object GrpcClientSettings {
       implicit actorSystem: ClassicActorSystemProvider): GrpcClientSettings = {
     val clientConfiguration: Config =
       actorSystem.classicSystem.settings.config.getConfig("pekko.grpc.client").getConfig("\"*\"")
-    val resolveTimeout = clientConfiguration.getDuration("service-discovery.resolve-timeout").asScala
+    val resolveTimeout = clientConfiguration.getDuration("service-discovery.resolve-timeout").toScala
     withConfigDefaults(serviceName, discovery, -1, resolveTimeout, clientConfiguration)
   }
 
@@ -110,7 +110,7 @@ object GrpcClientSettings {
     val serviceDiscoveryMechanism = clientConfiguration.getString("service-discovery.mechanism")
     var serviceName = clientConfiguration.getString("service-discovery.service-name")
     val port = clientConfiguration.getInt("port")
-    val resolveTimeout = clientConfiguration.getDuration("service-discovery.resolve-timeout").asScala
+    val resolveTimeout = clientConfiguration.getDuration("service-discovery.resolve-timeout").toScala
     val sd = serviceDiscoveryMechanism match {
       case "static" | "grpc-dns" =>
         val host = clientConfiguration.getString("host")
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/internal/MetadataImpl.scala b/runtime/src/main/scala/org/apache/pekko/grpc/internal/MetadataImpl.scala
index afd51a9f..e20e6994 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/internal/MetadataImpl.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/internal/MetadataImpl.scala
@@ -15,16 +15,17 @@ package org.apache.pekko.grpc.internal
 
 import java.util.{ List => jList, Locale, Map => jMap, Optional }
 
-import scala.collection.JavaConverters._
+import scala.jdk.CollectionConverters._
+import scala.jdk.OptionConverters._
 import scala.collection.immutable
+
 import org.apache.pekko
 import pekko.annotation.InternalApi
 import pekko.http.scaladsl.model.HttpHeader
 import pekko.japi.Pair
 import pekko.util.ByteString
-import pekko.grpc.scaladsl.{ BytesEntry, Metadata, MetadataEntry, StringEntry }
 import pekko.grpc.javadsl
-import pekko.util.OptionConverters._
+import pekko.grpc.scaladsl.{ BytesEntry, Metadata, MetadataEntry, StringEntry }
 
 @InternalApi private[pekko] object MetadataImpl {
   val BINARY_SUFFIX: String = io.grpc.Metadata.BINARY_HEADER_SUFFIX
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/internal/PekkoHttpClientUtils.scala b/runtime/src/main/scala/org/apache/pekko/grpc/internal/PekkoHttpClientUtils.scala
index 3567bf1e..1723c1ec 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/internal/PekkoHttpClientUtils.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/internal/PekkoHttpClientUtils.scala
@@ -16,7 +16,7 @@ package org.apache.pekko.grpc.internal
 import java.net.InetSocketAddress
 import java.security.SecureRandom
 import java.util.concurrent.CompletionStage
-import scala.concurrent.duration._
+
 import org.apache.pekko
 import pekko.{ Done, NotUsed }
 import pekko.actor.ClassicActorSystemProvider
@@ -32,14 +32,14 @@ import pekko.http.scaladsl.settings.ClientConnectionSettings
 import pekko.stream.{ Materializer, OverflowStrategy }
 import pekko.stream.scaladsl.{ Keep, Sink, Source }
 import pekko.util.ByteString
-import pekko.util.FutureConverters._
 import io.grpc.{ CallOptions, MethodDescriptor, Status, StatusRuntimeException }
 
 import javax.net.ssl.{ KeyManager, SSLContext, TrustManager }
 import scala.collection.immutable
 import scala.concurrent.{ ExecutionContext, Future, Promise }
+import scala.concurrent.duration._
+import scala.jdk.FutureConverters._
 import scala.util.{ Failure, Success }
-import pekko.http.scaladsl.model.StatusCodes
 
 /**
  * INTERNAL API
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/internal/PekkoNettyGrpcClientGraphStage.scala b/runtime/src/main/scala/org/apache/pekko/grpc/internal/PekkoNettyGrpcClientGraphStage.scala
index 5d0e37f3..83bf456a 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/internal/PekkoNettyGrpcClientGraphStage.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/internal/PekkoNettyGrpcClientGraphStage.scala
@@ -15,16 +15,15 @@ package org.apache.pekko.grpc.internal
 
 import org.apache.pekko
 import pekko.annotation.InternalApi
-import pekko.dispatch.ExecutionContexts
 import pekko.grpc.{ javadsl, scaladsl, GrpcResponseMetadata }
 import pekko.stream
 import pekko.stream.{ Attributes => _, _ }
 import pekko.stream.stage._
-import pekko.util.FutureConverters._
 import io.grpc._
 
 import java.util.concurrent.CompletionStage
-import scala.concurrent.{ Future, Promise }
+import scala.concurrent.{ ExecutionContext, Future, Promise }
+import scala.jdk.FutureConverters._
 
 @InternalApi
 private object PekkoNettyGrpcClientGraphStage {
@@ -101,9 +100,9 @@ private final class PekkoNettyGrpcClientGraphStage[I, O](
             def getHeaders(): javadsl.Metadata = jMetadata
 
             private lazy val sTrailers =
-              trailerPromise.future.map(MetadataImpl.scalaMetadataFromGoogleGrpcMetadata)(ExecutionContexts.parasitic)
+              trailerPromise.future.map(MetadataImpl.scalaMetadataFromGoogleGrpcMetadata)(ExecutionContext.parasitic)
             private lazy val jTrailers = trailerPromise.future
-              .map(MetadataImpl.javaMetadataFromGoogleGrpcMetadata)(ExecutionContexts.parasitic)
+              .map(MetadataImpl.javaMetadataFromGoogleGrpcMetadata)(ExecutionContext.parasitic)
               .asJava
             def trailers: Future[scaladsl.Metadata] = sTrailers
             def getTrailers(): CompletionStage[javadsl.Metadata] = jTrailers
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/internal/RequestBuilderImpl.scala b/runtime/src/main/scala/org/apache/pekko/grpc/internal/RequestBuilderImpl.scala
index 23d8962c..6d3205d3 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/internal/RequestBuilderImpl.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/internal/RequestBuilderImpl.scala
@@ -18,17 +18,15 @@ import java.util.concurrent.CompletionStage
 import org.apache.pekko
 import pekko.NotUsed
 import pekko.annotation.{ InternalApi, InternalStableApi }
-import pekko.dispatch.ExecutionContexts
-import pekko.grpc.{ GrpcResponseMetadata, GrpcSingleResponse }
+import pekko.grpc.{ GrpcClientSettings, GrpcResponseMetadata, GrpcSingleResponse }
 import pekko.stream.Materializer
 import pekko.stream.javadsl.{ Source => JavaSource }
 import pekko.stream.scaladsl.{ Keep, Sink, Source }
 import pekko.util.ByteString
-import pekko.util.FutureConverters._
 import io.grpc._
 
 import scala.concurrent.{ ExecutionContext, Future }
-import pekko.grpc.GrpcClientSettings
+import scala.jdk.FutureConverters._
 
 /**
  * INTERNAL API
@@ -120,7 +118,7 @@ final class ScalaClientStreamingRequestBuilder[I, O](
     NettyClientUtils.callOptionsWithDeadline(defaultOptions, settings)
 
   override def invoke(request: Source[I, NotUsed]): Future[O] =
-    invokeWithMetadata(request).map(_.value)(ExecutionContexts.parasitic)
+    invokeWithMetadata(request).map(_.value)(ExecutionContext.parasitic)
 
   override def invokeWithMetadata(source: Source[I, NotUsed]): Future[GrpcSingleResponse[O]] = {
     // a bit much overhead here because we are using the flow to represent a single response
@@ -145,7 +143,7 @@ final class ScalaClientStreamingRequestBuilder[I, O](
             def trailers = metadata.trailers
             def getTrailers() = metadata.getTrailers()
           }
-      }(ExecutionContexts.parasitic)
+      }(ExecutionContext.parasitic)
   }
 
   override def withHeaders(headers: MetadataImpl): ScalaClientStreamingRequestBuilder[I, O] =
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/internal/SingleParameterSink.scala b/runtime/src/main/scala/org/apache/pekko/grpc/internal/SingleParameterSink.scala
index 3123c223..102e9988 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/internal/SingleParameterSink.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/internal/SingleParameterSink.scala
@@ -77,7 +77,7 @@ object SingleParameterSink {
     Sink.fromGraph(new SingleParameterStage[T]).withAttributes(Attributes.name("singleParameterSink"))
 
   def create[T](): javadsl.Sink[T, CompletionStage[T]] = {
-    import pekko.util.FutureConverters._
+    import scala.jdk.FutureConverters._
     new javadsl.Sink(SingleParameterSink().mapMaterializedValue(_.asJava))
   }
 }
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/internal/UnaryCallAdapter.scala b/runtime/src/main/scala/org/apache/pekko/grpc/internal/UnaryCallAdapter.scala
index 1a491ccb..1bff5440 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/internal/UnaryCallAdapter.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/internal/UnaryCallAdapter.scala
@@ -17,13 +17,12 @@ import java.util.concurrent.CompletionStage
 
 import org.apache.pekko
 import pekko.annotation.InternalApi
-import pekko.dispatch.ExecutionContexts
 import pekko.grpc.GrpcSingleResponse
-import pekko.util.FutureConverters._
 import pekko.util.OptionVal
 import io.grpc._
 
-import scala.concurrent.{ Future, Promise }
+import scala.concurrent.{ ExecutionContext, Future, Promise }
+import scala.jdk.FutureConverters._
 
 /**
  * gRPC Netty based client listener transforming callbacks into a future response
@@ -90,9 +89,9 @@ private[pekko] final class UnaryCallWithMetadataAdapter[Res] extends ClientCall.
       override def getHeaders() = jMetadata
 
       private lazy val sTrailer =
-        trailerPromise.future.map(MetadataImpl.scalaMetadataFromGoogleGrpcMetadata)(ExecutionContexts.parasitic)
+        trailerPromise.future.map(MetadataImpl.scalaMetadataFromGoogleGrpcMetadata)(ExecutionContext.parasitic)
       private lazy val jTrailer =
-        trailerPromise.future.map(MetadataImpl.javaMetadataFromGoogleGrpcMetadata)(ExecutionContexts.parasitic).asJava
+        trailerPromise.future.map(MetadataImpl.javaMetadataFromGoogleGrpcMetadata)(ExecutionContext.parasitic).asJava
 
       def trailers = sTrailer
       def getTrailers() = jTrailer
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/javadsl/ServerReflection.scala b/runtime/src/main/scala/org/apache/pekko/grpc/javadsl/ServerReflection.scala
index d81d3521..a81403a8 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/javadsl/ServerReflection.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/javadsl/ServerReflection.scala
@@ -34,7 +34,7 @@ object ServerReflection {
     import scala.collection.JavaConverters._
     val delegate = ServerReflectionHandler.apply(
       ServerReflectionImpl(objects.asScala.map(_.descriptor).toSeq, objects.asScala.map(_.name).toList))(sys)
-    import pekko.util.FutureConverters._
+    import scala.jdk.FutureConverters._
     implicit val ec = sys.classicSystem.dispatcher
     request =>
       delegate
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/javadsl/WebHandler.scala b/runtime/src/main/scala/org/apache/pekko/grpc/javadsl/WebHandler.scala
index ee2e14e1..69656065 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/javadsl/WebHandler.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/javadsl/WebHandler.scala
@@ -54,7 +54,7 @@ object WebHandler {
 
   // Adapt Marshaller.futureMarshaller(fromResponse) to javadsl
   private implicit val csResponseMarshaller: ToResponseMarshaller[CompletionStage[HttpResponse]] = {
-    import pekko.util.FutureConverters._
+    import scala.jdk.FutureConverters._
     // HACK: Only known way to lift this to the scaladsl.model types required for MarshallingDirectives.handleWith
     Marshaller.asScalaToResponseMarshaller(
       Marshaller
diff --git a/runtime/src/main/scala/org/apache/pekko/grpc/scaladsl/Grpc.scala b/runtime/src/main/scala/org/apache/pekko/grpc/scaladsl/Grpc.scala
index 827a2b75..0e091de5 100644
--- a/runtime/src/main/scala/org/apache/pekko/grpc/scaladsl/Grpc.scala
+++ b/runtime/src/main/scala/org/apache/pekko/grpc/scaladsl/Grpc.scala
@@ -15,6 +15,7 @@ package org.apache.pekko.grpc.scaladsl
 
 import java.util.concurrent.ConcurrentHashMap
 import scala.concurrent.{ ExecutionContext, Future }
+import scala.jdk.CollectionConverters._
 
 import org.apache.pekko
 import pekko.Done
@@ -22,7 +23,6 @@ import pekko.actor.{ CoordinatedShutdown, ExtendedActorSystem, Extension, Extens
 import pekko.annotation.InternalApi
 import pekko.event.{ LogSource, Logging }
 import pekko.grpc.GrpcChannel
-import pekko.util.ccompat.JavaConverters._
 
 /** INTERNAL API */
 @InternalApi


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pekko.apache.org
For additional commands, e-mail: commits-help@pekko.apache.org