Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,14 @@ Changes log
supporting helper class. Applications with multiple STDIO protocol helpers must
select one explicitly.
- Enhancements
- Added an experimental SDK-native gRPC unary client on a borrowed Restlet HTTP/2
connector, with explicit plaintext opt-in, bounded messages and call admission.
Regression tests cover authority mapping, cancellation before and after headers,
disconnect recovery, malformed responses and shared connector ownership. Empty
responses retain SDK missing-status diagnostics instead of failing on a null stream.
Shutdown arriving before SDK listener installation is replayed once; interrupted
shutdown still closes owned transport resources and preserves the interrupt.
TLS, streaming methods and physical gRPC connection controls remain unsupported.
- Added the supported `org.restlet.util.StreamTransport` seam for protocol-neutral,
bounded synchronous byte I/O, serialized writes, borrowed-stream cancellation and
owned subprocess lifecycle with separate bounded stderr capture. No protocol
Expand Down
75 changes: 75 additions & 0 deletions org.restlet.ext.grpc/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.restlet</groupId>
<artifactId>org.restlet.parent</artifactId>
<version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>org.restlet.ext.grpc</artifactId>
<name>Restlet Framework - gRPC extension</name>
<description>Native gRPC unary client on a borrowed Restlet HTTP/2 connector.</description>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.6.0-android</version>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>2.50.0</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-bom</artifactId>
<version>${lib-grpc-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.restlet</groupId>
<artifactId>org.restlet</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-core</artifactId>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-services</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${lib-junit-version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
17 changes: 17 additions & 0 deletions org.restlet.ext.grpc/src/main/java/module-info.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/**
* Copyright 2005-2026 Qlik
*
* <p>The content of this file is subject to the terms of the Apache 2.0 open source license
* available at https://www.opensource.org/licenses/apache-2.0
*
* <p>Restlet is a registered trademark of QlikTech International AB.
*/
@SuppressWarnings({"requires-automatic", "requires-transitive-automatic"})
module org.restlet.ext.grpc {
requires transitive org.restlet;
requires transitive io.grpc;
requires io.grpc.internal;
requires com.google.common;

exports org.restlet.ext.grpc;
}
Loading
Loading