[ https://issues.apache.org/jira/browse/CAY-2076?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Savva Kolbachev updated CAY-2076: --------------------------------- Description: The goal is add HTTP/2 support for ROP client as seperate module. The solution is implementing ROPConnector interface with Jetty HTTP/2 Client. Depends on your needs, there are several ways how to use this implementation. *Use HighHttp2ROPConnector through HighHttp2ALPNClientConnectionProvider.* This solution based on Jetty http2-http-client-transport, which provides the implementation of the HTTP/2 transport for HttpClient. So we can use the higher level API provided by HttpClient to send HTTP requests and receive HTTP responses, and the HTTP/2 transport will take care of converting them in HTTP/2 format. It requires ALPN to determine which protocol should be used. *Use HighHttp2ROPConnector through HighHttp2ClientConnectionProvider.* It also based on Jetty http2-http-client-transport, but doesn't use ALPN. It uses prior knowledge about HTTP/2 on server-side. So this solution connects directly to the server via HTTP/2 and you could use it without providing ALPN. *Use LowHttp2ROPConnector through LowHttp2ClientConnectionProvider.* This solution based on Jetty http2-client, which provides the implementation of HTTP/2 client with a low level HTTP/2 API. It's more complex but flexible way. You could handle all things related to your sessions, streams, frames and etc. It also uses prior knowledge instead of ALPN. was: The goal is add HTTP/2 support for ROP client as seperate module. The solution is implementing ROPConnector interface with Jetty HTTP/2 Client. Depends on your needs, there are several ways how to use this implementation. *Use HighHttp2ROPConnector through HighHttp2ALPNClientConnectionProvider.* This solution based on Jetty http2-http-client-transport, which provides the implementation of the HTTP/2 transport for HttpClient. So we can use the higher level API provided by HttpClient to send HTTP requests and receive HTTP responses, and the HTTP/2 transport will take care of converting them in HTTP/2 format. It requires ALPN to determine which protocol should be used. *Use HighHttp2ROPConnector through HighHttp2ClientConnectionProvider.* It also based on Jetty http2-http-client-transport, but doesn't use ALPN. It uses prior knowledge about HTTP/2 on server-side. So this solution connects directly to the server via HTTP/2 and you could use it without providing ALPN. *Use LowHttp2ROPConnector through LowHttp2ClientConnectionProvider.* This solution based on Jetty http2-client, which provides the implementation of HTTP/2 client with a low level HTTP/2 API. It's more complex but flexible way. You could handle all things related to your sessions, streams, frames and etc. It also uses prior knowledge instead of ALPN. > Implement HTTP/2 support for ROP Client > --------------------------------------- > > Key: CAY-2076 > URL: https://issues.apache.org/jira/browse/CAY-2076 > Project: Cayenne > Issue Type: Task > Components: ROP > Reporter: Savva Kolbachev > Assignee: Savva Kolbachev > Fix For: 4.0.M4 > > > The goal is add HTTP/2 support for ROP client as seperate module. > The solution is implementing ROPConnector interface with Jetty HTTP/2 Client. > Depends on your needs, there are several ways how to use this implementation. > *Use HighHttp2ROPConnector through HighHttp2ALPNClientConnectionProvider.* > This solution based on Jetty http2-http-client-transport, which provides the > implementation of the HTTP/2 transport for HttpClient. So we can use the > higher level API provided by HttpClient to send HTTP requests and receive > HTTP responses, and the HTTP/2 transport will take care of converting them in > HTTP/2 format. It requires ALPN to determine which protocol should be used. > *Use HighHttp2ROPConnector through HighHttp2ClientConnectionProvider.* > It also based on Jetty http2-http-client-transport, but doesn't use ALPN. It > uses prior knowledge about HTTP/2 on server-side. So this solution connects > directly to the server via HTTP/2 and you could use it without providing ALPN. > *Use LowHttp2ROPConnector through LowHttp2ClientConnectionProvider.* > This solution based on Jetty http2-client, which provides the implementation > of HTTP/2 client with a low level HTTP/2 API. It's more complex but flexible > way. You could handle all things related to your sessions, streams, frames > and etc. It also uses prior knowledge instead of ALPN. -- This message was sent by Atlassian JIRA (v6.3.4#6332)