Issue #6728 - QUIC and HTTP/3

- Fixed module-info.java for HTTP/3 modules.
- Updated package-info.java for QUIC.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
This commit is contained in:
Simone Bordet 2021-09-27 22:45:06 +02:00
parent 2d4cb5abbf
commit 2e98931654
10 changed files with 30 additions and 25 deletions

View File

@ -14,7 +14,6 @@
module org.eclipse.jetty.http3.client
{
exports org.eclipse.jetty.http3.client;
exports org.eclipse.jetty.http3.client.internal;
requires transitive org.eclipse.jetty.http3.common;
requires transitive org.eclipse.jetty.http3.qpack;

View File

@ -13,13 +13,11 @@
module org.eclipse.jetty.http3.common
{
exports org.eclipse.jetty.http3;
exports org.eclipse.jetty.http3.api;
exports org.eclipse.jetty.http3.frames;
exports org.eclipse.jetty.http3.internal to org.eclipse.jetty.http3.client, org.eclipse.jetty.http3.server;
exports org.eclipse.jetty.http3.internal.generator to org.eclipse.jetty.http3.client, org.eclipse.jetty.http3.server;
exports org.eclipse.jetty.http3.internal.parser to org.eclipse.jetty.http3.client, org.eclipse.jetty.http3.server;
exports org.eclipse.jetty.http3.internal;
requires transitive org.eclipse.jetty.http;
requires transitive org.eclipse.jetty.http3.qpack;

View File

@ -11,7 +11,7 @@
// ========================================================================
//
package org.eclipse.jetty.http3;
package org.eclipse.jetty.http3.internal;
public enum ErrorCode
{

View File

@ -15,8 +15,8 @@ package org.eclipse.jetty.http3.internal.parser;
import java.nio.ByteBuffer;
import org.eclipse.jetty.http3.ErrorCode;
import org.eclipse.jetty.http3.frames.SettingsFrame;
import org.eclipse.jetty.http3.internal.ErrorCode;
import org.eclipse.jetty.util.BufferUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -15,8 +15,8 @@ package org.eclipse.jetty.http3.internal.parser;
import java.nio.ByteBuffer;
import org.eclipse.jetty.http3.ErrorCode;
import org.eclipse.jetty.http3.frames.FrameType;
import org.eclipse.jetty.http3.internal.ErrorCode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -19,8 +19,8 @@ import java.util.List;
import java.util.function.BooleanSupplier;
import org.eclipse.jetty.http.MetaData;
import org.eclipse.jetty.http3.ErrorCode;
import org.eclipse.jetty.http3.frames.HeadersFrame;
import org.eclipse.jetty.http3.internal.ErrorCode;
import org.eclipse.jetty.http3.qpack.QpackDecoder;
import org.eclipse.jetty.http3.qpack.QpackException;
import org.eclipse.jetty.util.BufferUtil;

View File

@ -17,8 +17,8 @@ import java.nio.ByteBuffer;
import java.util.function.BooleanSupplier;
import java.util.function.UnaryOperator;
import org.eclipse.jetty.http3.ErrorCode;
import org.eclipse.jetty.http3.frames.FrameType;
import org.eclipse.jetty.http3.internal.ErrorCode;
import org.eclipse.jetty.http3.qpack.QpackDecoder;
import org.eclipse.jetty.util.BufferUtil;
import org.slf4j.Logger;

View File

@ -17,8 +17,8 @@ import java.nio.ByteBuffer;
import java.util.LinkedHashMap;
import java.util.Map;
import org.eclipse.jetty.http3.ErrorCode;
import org.eclipse.jetty.http3.frames.SettingsFrame;
import org.eclipse.jetty.http3.internal.ErrorCode;
import org.eclipse.jetty.http3.internal.VarLenInt;
public class SettingsBodyParser extends BodyParser

View File

@ -14,7 +14,6 @@
module org.eclipse.jetty.http3.server
{
exports org.eclipse.jetty.http3.server;
exports org.eclipse.jetty.http3.server.internal;
requires transitive org.eclipse.jetty.http3.common;
requires transitive org.eclipse.jetty.http3.qpack;

View File

@ -14,30 +14,39 @@
/**
* <p>This module contains the main abstractions for the QUIC protocol.</p>
* <p>A {@link org.eclipse.jetty.quic.common.QuicConnection} is a {@link org.eclipse.jetty.io.Connection}
* that receives and sends bytes from its underlying datagram {@link org.eclipse.jetty.io.EndPoint}.</p>
* that receives and sends bytes from its underlying {@link org.eclipse.jetty.io.DatagramChannelEndPoint}.</p>
* <p>A {@link org.eclipse.jetty.quic.common.QuicConnection} manages many {@link org.eclipse.jetty.quic.common.QuicSession}s,
* one for each QUIC connection ID.</p>
* <p>A {@link org.eclipse.jetty.quic.common.QuicSession} manages many QUIC streams, identified by a
* stream ID and represented by an {@link org.eclipse.jetty.io.EndPoint} subclass, namely
* {@link org.eclipse.jetty.quic.common.QuicStreamEndPoint}.</p>
* stream ID and represented by {@link org.eclipse.jetty.quic.common.QuicStreamEndPoint}.</p>
* <p>A {@link org.eclipse.jetty.quic.common.QuicSession} delegates I/O processing to a protocol-specific
* {@link org.eclipse.jetty.quic.common.ProtocolSession}, whose responsibility is to use QUIC streams
* to implement the protocol-specific I/O processing.</p>
* <p>The {@link org.eclipse.jetty.io.Connection} associated with each {@link org.eclipse.jetty.quic.common.QuicStreamEndPoint}
* parses the bytes received on that QUIC stream, and generates the bytes to send on that QUIC stream.</p>
* <p>For example, on the server side, the layout of the components in case of HTTP/1.1 could be the following:</p>
* parses the bytes received on the QUIC stream represented by the {@link org.eclipse.jetty.quic.common.QuicStreamEndPoint},
* and generates the bytes to send on that QUIC stream.</p>
* <p>On the client side, the layout of the components in case of HTTP/1.1 could be the following:</p>
* <pre>
* DatagramChannelEndPoint -- QuicConnection -- QuicSession -- ProtocolSession -- QuicStreamEndPoint -- HttpConnectionOverHTTP
* </pre>
* <p>The client-specific {@link org.eclipse.jetty.quic.common.ProtocolSession} creates a bidirectional QUIC stream
* that represent the same transport as a TCP stream, over which HTTP/1.1 bytes are exchanged by the two peers.</p>
* <p>On the server side, the layout of the components in case of HTTP/1.1 could be the following:</p>
* <pre>
* CLIENT | SERVER
*
* clientA ServerQuicSessionA
* \ /
* DatagramChannelEndPoint -- ServerQuicConnection
* / \
* clientB ServerQuicSessionB -- QuicStreamEndPointB1 -- HttpConnection
* clientA QuicSessionA -- ProtocolSessionA -- QuicStreamEndPointA -- HttpConnection
* \ /
* DatagramChannelEndPoint -- QuicConnection
* / \
* clientB QuicSessionB -- ProtocolSessionB -- QuicStreamEndPointB -- HttpConnection
* </pre>
* <p>The {@code DatagramChannelEndPoint} receives UDP datagrams from clients.</p>
* <p>{@code ServerQuicConnection} processes the incoming datagram bytes creating a {@code ServerQuicSession} for every
* <p>{@code QuicConnection} processes the incoming datagram bytes creating a {@code QuicSession} for every
* QUIC connection ID sent by the clients.</p>
* <p>{@code clientB} has created a single QUIC stream to send a single HTTP/1.1 request, which results in
* {@code ServerQuicSessionB} to create a single {@code QuicStreamEndPointB1} with its associated {@code HttpConnection}.</p>
* <p>Note that the path {@code DatagramChannelEndPoint - ServerQuicConnection - ServerQuicSessionB - QuicStreamEndPointB1}
* <p>The clients have created a single QUIC stream to send HTTP/1.1 requests, which results in the
* {@code QuicSession}s to create a correspondent {@code QuicStreamEndPoint} with its associated {@code HttpConnection}.</p>
* <p>The path {@code DatagramChannelEndPoint - QuicConnection - QuicSession - QuicStreamEndPoint}
* behaves exactly like a TCP {@link org.eclipse.jetty.io.SocketChannelEndPoint} for the associated
* {@code HttpConnection}.</p>
*/