<div dir="ltr">Hey guys!<div><br></div><div>Recently I&#39;ve been looking into ALPN support [1] and studying RFC [2] as well as JEP [3]. In short, the Application Layer Protocol Negotiation - allows the server and the client to agree which protocol shall be used after TLS handshake. It will be supported out of the box in JDK9. For JDK8 you need a special Jetty Java agent [4].</div><div><br></div><div>With ALPN we could build an Uber Client, which would be able to support many protocols at the same time (REST, HTTP/2, Hot Rod). We should be able to select the protocol during client initialization as well as renegotiate existing connection. This could be very convenient for situations when connecting to multiple Hot Rod servers and some of them are accessible using Hot Rod (the same DC or the same Cloud tenant) and some connections need to get through a firewall (HTTP/2, REST). </div><div><br></div><div>Of course implementing this requires major refactoring in the server endpoint as well as in the client. Possibly this is something for Infinispan 10 :)</div><div><br></div><div>WDYT?</div><div><br></div><div>Thanks</div><div>Sebastian </div><div><br></div><div>[1] <a href="https://issues.jboss.org/browse/ISPN-6899">https://issues.jboss.org/browse/ISPN-6899</a></div><div>[2] <a href="https://tools.ietf.org/html/rfc7301">https://tools.ietf.org/html/rfc7301</a></div><div>[3] <a href="http://openjdk.java.net/jeps/244">http://openjdk.java.net/jeps/244</a></div><div>[4] <a href="https://github.com/jetty-project/jetty-alpn">https://github.com/jetty-project/jetty-alpn</a></div></div>