This is an automated email from the ASF dual-hosted git repository.
roiocam 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 0ac166c1 enable GrpcInteropIoWithPekkoHttpJavaSpec to work (#257)
0ac166c1 is described below
commit 0ac166c1302d459f06bd85ecd2fcd85f9273697a
Author: Laglangyue <[email protected]>
AuthorDate: Sun Apr 7 12:09:29 2024 +0800
enable GrpcInteropIoWithPekkoHttpJavaSpec to work (#257)
* enable GrpcInteropIoWithPekkoHttpJavaSpec
* enable GrpcInteropIoWithIoSpec with PekkoHttp to work for javaClientTest
* format
---------
Co-authored-by: laglangyue <[email protected]>
Co-authored-by: tangjiafu <[email protected]>
---
.../grpc/interop/PekkoGrpcJavaClientTester.java | 36 ++++++++++++++++++----
.../pekko/grpc/interop/GrpcInteropSpec.scala | 25 ++++++++++-----
2 files changed, 47 insertions(+), 14 deletions(-)
diff --git
a/interop-tests/src/test/java/org/apache/pekko/grpc/interop/PekkoGrpcJavaClientTester.java
b/interop-tests/src/test/java/org/apache/pekko/grpc/interop/PekkoGrpcJavaClientTester.java
index 83f773c3..3dc24f36 100644
---
a/interop-tests/src/test/java/org/apache/pekko/grpc/interop/PekkoGrpcJavaClientTester.java
+++
b/interop-tests/src/test/java/org/apache/pekko/grpc/interop/PekkoGrpcJavaClientTester.java
@@ -21,16 +21,22 @@ import io.grpc.Status;
import io.grpc.StatusRuntimeException;
import io.grpc.testing.integration.EmptyProtos;
import io.grpc.testing.integration.Messages;
+import io.grpc.testing.integration.Messages.SimpleResponse;
+import io.grpc.testing.integration.Messages.StreamingOutputCallResponse;
import io.grpc.testing.integration.TestServiceClient;
import io.grpc.testing.integration.UnimplementedServiceClient;
import io.grpc.testing.integration2.ClientTester;
import io.grpc.testing.integration2.Settings;
import java.io.InputStream;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.TimeUnit;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
import org.apache.pekko.actor.ActorSystem;
import org.apache.pekko.grpc.GrpcClientSettings;
import org.apache.pekko.grpc.GrpcResponseMetadata;
@@ -54,30 +60,48 @@ import scala.concurrent.ExecutionContext;
* against our Scala API's
*/
public class PekkoGrpcJavaClientTester implements ClientTester {
+
private final Settings settings;
private final Materializer mat;
private final ExecutionContext ec;
private final ActorSystem as;
+ private final String backend;
+ private final Boolean testWithSslContext;
private TestServiceClient client;
private UnimplementedServiceClient clientUnimplementedService;
private static int AWAIT_TIME_SECONDS = 3;
- public PekkoGrpcJavaClientTester(Settings settings, ActorSystem sys) {
+ public PekkoGrpcJavaClientTester(
+ Settings settings, ActorSystem sys, String backend, Boolean
testWithSslContext) {
this.settings = settings;
this.mat = SystemMaterializer.get(sys).materializer();
this.as = sys;
+ this.backend = backend;
+ this.testWithSslContext = testWithSslContext;
this.ec = sys.dispatcher();
}
@Override
public void setUp() {
- final GrpcClientSettings grpcSettings =
+ TrustManager trustManager =
SSLContextUtils.trustManagerFromResource("/certs/ca.pem");
+ GrpcClientSettings grpcSettings =
GrpcClientSettings.connectToServiceAt(settings.serverHost(),
settings.serverPort(), as)
+ .withBackend(backend)
.withOverrideAuthority(settings.serverHostOverride())
- .withTls(settings.useTls())
-
.withTrustManager(SSLContextUtils.trustManagerFromResource("/certs/ca.pem"));
+ .withTls(settings.useTls());
+ try {
+ if (testWithSslContext) {
+ SSLContext sslContext = SSLContext.getInstance("TLS");
+ sslContext.init(null, new TrustManager[] {trustManager}, null);
+ grpcSettings = grpcSettings.withSslContext(sslContext);
+ } else {
+ grpcSettings = grpcSettings.withTrustManager(trustManager);
+ }
+ } catch (NoSuchAlgorithmException | KeyManagementException e) {
+ throw new RuntimeException(e);
+ }
client = TestServiceClient.create(grpcSettings, as);
clientUnimplementedService =
UnimplementedServiceClient.create(grpcSettings, as);
}
@@ -196,7 +220,7 @@ public class PekkoGrpcJavaClientTester implements
ClientTester {
.setPayload(Messages.Payload.newBuilder().setBody(ByteString.copyFrom(new
byte[58979])))
.build());
- final List<Messages.StreamingOutputCallResponse> response =
+ final List<StreamingOutputCallResponse> response =
client
.streamingOutputCall(request)
.toMat(Sink.seq(), Keep.right())
@@ -349,7 +373,7 @@ public class PekkoGrpcJavaClientTester implements
ClientTester {
// unary call
org.apache.pekko.util.ByteString binaryValue =
org.apache.pekko.util.ByteString.fromInts(0xababab);
- CompletionStage<GrpcSingleResponse<Messages.SimpleResponse>>
unaryResponseCs =
+ CompletionStage<GrpcSingleResponse<SimpleResponse>> unaryResponseCs =
client
.unaryCall()
.addHeader("x-grpc-test-echo-initial",
"test_initial_metadata_value")
diff --git
a/interop-tests/src/test/scala/org/apache/pekko/grpc/interop/GrpcInteropSpec.scala
b/interop-tests/src/test/scala/org/apache/pekko/grpc/interop/GrpcInteropSpec.scala
index 228ca289..577f1252 100644
---
a/interop-tests/src/test/scala/org/apache/pekko/grpc/interop/GrpcInteropSpec.scala
+++
b/interop-tests/src/test/scala/org/apache/pekko/grpc/interop/GrpcInteropSpec.scala
@@ -16,27 +16,34 @@ package org.apache.pekko.grpc.interop
import io.grpc.testing.integration.TestServiceHandlerFactory
class GrpcInteropIoWithIoSpec extends GrpcInteropTests(Servers.IoGrpc,
Clients.IoGrpc)
+
class GrpcInteropIoWithPekkoNettyScalaSpec extends
GrpcInteropTests(Servers.IoGrpc, Clients.PekkoNetty.Scala)
class GrpcInteropIoWithPekkoNettyScalaWithSslContextSpec
extends GrpcInteropTests(Servers.IoGrpc,
Clients.PekkoNetty.ScalaWithSslContext)
class GrpcInteropIoWithPekkoNettyJavaSpec extends
GrpcInteropTests(Servers.IoGrpc, Clients.PekkoNetty.Java)
+class GrpcInteropIoWithPekkoNettyJavaWithSslContextSpec
+ extends GrpcInteropTests(Servers.IoGrpc,
Clients.PekkoNetty.JavaWithSslContext)
+
class GrpcInteropIoWithPekkoHttpScalaSpec extends
GrpcInteropTests(Servers.IoGrpc, Clients.PekkoHttp.Scala)
class GrpcInteropIoWithPekkoHttpScalaWithSslContextSpec
extends GrpcInteropTests(Servers.IoGrpc,
Clients.PekkoHttp.ScalaWithSslContext)
-//class GrpcInteropIoWithPekkoHttpJavaSpec extends
GrpcInteropTests(Servers.IoGrpc, Clients.PekkoHttp.Java)
+class GrpcInteropIoWithPekkoHttpJavaSpec extends
GrpcInteropTests(Servers.IoGrpc, Clients.PekkoHttp.Java)
+class GrpcInteropIoWithPekkoHttpJavaWithSslContextSpec
+ extends GrpcInteropTests(Servers.IoGrpc,
Clients.PekkoHttp.JavaWithSslContext)
class GrpcInteropPekkoScalaWithIoSpec extends
GrpcInteropTests(Servers.Pekko.Scala, Clients.IoGrpc)
+
class GrpcInteropPekkoScalaWithPekkoNettyScalaSpec
extends GrpcInteropTests(Servers.Pekko.Scala, Clients.PekkoNetty.Scala)
class GrpcInteropPekkoScalaWithPekkoNettyJavaSpec extends
GrpcInteropTests(Servers.Pekko.Scala, Clients.PekkoNetty.Java)
class GrpcInteropPekkoScalaWithPekkoHttpScalaSpec extends
GrpcInteropTests(Servers.Pekko.Scala, Clients.PekkoHttp.Scala)
-//class GrpcInteropPekkoScalaWithPekkoHttpJavaSpec extends
GrpcInteropTests(Servers.Pekko.Scala, Clients.PekkoHttp.Java)
+class GrpcInteropPekkoScalaWithPekkoHttpJavaSpec extends
GrpcInteropTests(Servers.Pekko.Scala, Clients.PekkoHttp.Java)
class GrpcInteropPekkoJavaWithIoSpec extends
GrpcInteropTests(Servers.Pekko.Java, Clients.IoGrpc)
class GrpcInteropPekkoJavaWithPekkoNettyScalaSpec extends
GrpcInteropTests(Servers.Pekko.Java, Clients.PekkoNetty.Scala)
class GrpcInteropPekkoJavaWithPekkoNettyJavaSpec extends
GrpcInteropTests(Servers.Pekko.Java, Clients.PekkoNetty.Java)
class GrpcInteropPekkoJavaWithPekkoHttpScalaSpec extends
GrpcInteropTests(Servers.Pekko.Java, Clients.PekkoHttp.Scala)
-//class GrpcInteropPekkoJavaWithPekkoHttpJavaSpec extends
GrpcInteropTests(Servers.Pekko.Java, Clients.PekkoHttp.Java)
+class GrpcInteropPekkoJavaWithPekkoHttpJavaSpec extends
GrpcInteropTests(Servers.Pekko.Java, Clients.PekkoHttp.Java)
//--- Aliases
@@ -51,15 +58,16 @@ object Servers {
object Clients {
val IoGrpc = IoGrpcJavaClientProvider
object PekkoNetty {
- val Java = PekkoNettyClientProviderJava$
+ val Java = new PekkoClientProviderJava("netty", false)
val Scala = new PekkoClientProviderScala("netty", false)
val ScalaWithSslContext = new PekkoClientProviderScala("netty", true)
+ val JavaWithSslContext = new PekkoClientProviderJava("netty", true)
}
object PekkoHttp {
- // FIXME: let's have Scala stable and we'll do Java later.
-// val Java = PekkoHttpClientProviderJava$
+ val Java = new PekkoClientProviderJava("pekko-http", false)
val Scala = new PekkoClientProviderScala("pekko-http", false)
val ScalaWithSslContext = new PekkoClientProviderScala("pekko-http", true)
+ val JavaWithSslContext = new PekkoClientProviderJava("pekko-http", true)
}
}
@@ -83,8 +91,9 @@ class PekkoClientProviderScala(backend: String,
testWithSslContext: Boolean) ext
implicit sys => new PekkoGrpcScalaClientTester(settings, backend,
testWithSslContext))
}
-object PekkoNettyClientProviderJava$ extends PekkoClientProvider {
+class PekkoClientProviderJava(backend: String, testWithSslContext: Boolean)
extends PekkoClientProvider {
val label: String = "pekko-grpc java client tester"
- def client = new PekkoGrpcClientJava((settings, sys) => new
PekkoGrpcJavaClientTester(settings, sys))
+ def client = new PekkoGrpcClientJava((settings, sys) =>
+ new PekkoGrpcJavaClientTester(settings, sys, backend, testWithSslContext))
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]