cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Savva Kolbachev (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAY-2076) Implement HTTP/2 support for ROP Client
Date Sun, 17 Apr 2016 16:36:25 GMT

     [ 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)

Mime
View raw message