From 591c168f247d80ce0c128e22161dd8b2e89cb96b Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Sat, 18 Apr 2020 21:08:53 +0300 Subject: [PATCH] BAEL-3908_http2_client_in_jetty (#8981) * BAEL-3908 http2 in jetty - initial commit * BAEL-3908 - HTTP2 client in jetty * BAEL-3908 - http2 in jetty - code cleanup * BAEL-3908 - fixed indentation --- libraries-server/pom.xml | 42 +++++++++- libraries-server/src/main/config/jetty.xml | 79 ++++++++++++++++++ .../jetty/http2/Http2JettyServlet.java | 29 +++++++ .../src/main/resources/keystore.jks | Bin 0 -> 2206 bytes .../src/main/resources/truststore.jks | Bin 0 -> 916 bytes .../src/main/webapp/WEB-INF/web.xml | 33 ++++++++ libraries-server/src/main/webapp/http2.html | 14 ++++ .../images/homepage-latest_articles.jpg | Bin 0 -> 18501 bytes .../images/homepage-rest_with_spring.jpg | Bin 0 -> 18891 bytes .../webapp/images/homepage-weekly_reviews.jpg | Bin 0 -> 20814 bytes libraries-server/src/main/webapp/index.html | 12 +++ 11 files changed, 208 insertions(+), 1 deletion(-) create mode 100644 libraries-server/src/main/config/jetty.xml create mode 100644 libraries-server/src/main/java/com/baeldung/jetty/http2/Http2JettyServlet.java create mode 100644 libraries-server/src/main/resources/keystore.jks create mode 100644 libraries-server/src/main/resources/truststore.jks create mode 100644 libraries-server/src/main/webapp/WEB-INF/web.xml create mode 100644 libraries-server/src/main/webapp/http2.html create mode 100644 libraries-server/src/main/webapp/images/homepage-latest_articles.jpg create mode 100644 libraries-server/src/main/webapp/images/homepage-rest_with_spring.jpg create mode 100644 libraries-server/src/main/webapp/images/homepage-weekly_reviews.jpg create mode 100644 libraries-server/src/main/webapp/index.html diff --git a/libraries-server/pom.xml b/libraries-server/pom.xml index a849708cd8..eb9cb61e56 100644 --- a/libraries-server/pom.xml +++ b/libraries-server/pom.xml @@ -5,6 +5,7 @@ libraries-server 0.0.1-SNAPSHOT libraries-server + war com.baeldung @@ -105,12 +106,51 @@ + + + + + org.eclipse.jetty + jetty-maven-plugin + ${jetty.version} + + 8888 + quit + + -Xbootclasspath/p:${settings.localRepository}/org/mortbay/jetty/alpn/alpn-boot/${alpn.version}/alpn-boot-${alpn.version}.jar + + ${basedir}/src/main/config/jetty.xml + + / + + + + + org.eclipse.jetty.http2 + http2-server + ${jetty.version} + + + org.eclipse.jetty + jetty-alpn-openjdk8-server + ${jetty.version} + + + org.eclipse.jetty + jetty-servlets + ${jetty.version} + + + + + 3.6.2 4.5.3 - 9.4.8.v20171121 + 9.4.27.v20200227 4.1.20.Final + 8.1.11.v20170118 8.5.24 4.3.1 1.2.0 diff --git a/libraries-server/src/main/config/jetty.xml b/libraries-server/src/main/config/jetty.xml new file mode 100644 index 0000000000..fd4a50382b --- /dev/null +++ b/libraries-server/src/main/config/jetty.xml @@ -0,0 +1,79 @@ + + + + + + + src/main/resources/keystore.jks + storepwd + src/main/resources/truststore.jks + storepwd + TLSv1.2 + + + + + + + + + + + + + + + + + http/1.1 + + + + + + + + + + + + 8443 + + + + + + + + + + + + + + + + + + alpn + + + + + h2,h2-17 + + + + + + + + + + + + 8444 + + + + \ No newline at end of file diff --git a/libraries-server/src/main/java/com/baeldung/jetty/http2/Http2JettyServlet.java b/libraries-server/src/main/java/com/baeldung/jetty/http2/Http2JettyServlet.java new file mode 100644 index 0000000000..56b75c45d3 --- /dev/null +++ b/libraries-server/src/main/java/com/baeldung/jetty/http2/Http2JettyServlet.java @@ -0,0 +1,29 @@ +package com.baeldung.jetty.http2; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class Http2JettyServlet extends HttpServlet { + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.addHeader("Cache-control", "no-store, no-cache, must-revalidate"); + response.addDateHeader("Last-Modified", 0); + response.addDateHeader("Expires", 0); + + String requestPath = request.getRequestURI(); + InputStream input = getServletContext().getResourceAsStream(requestPath); + OutputStream output = response.getOutputStream(); + byte[] buffer = new byte[1024]; + int read; + while ((read = input.read(buffer)) >= 0) { + output.write(buffer, 0, read); + } + } + +} diff --git a/libraries-server/src/main/resources/keystore.jks b/libraries-server/src/main/resources/keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..428ba54776ede2fdcdeedd879edb927c2abd9953 GIT binary patch literal 2206 zcmcgt`9Bkm8{cNkoMUp6gmShKn!AQX*(l6Nj(i=TnQPOKYtv{*Wg>ItE=Q!pRYH8a z$Sp#S#2lYw#aw;$y9u4T}83H*%lp zAKZay0sy=q1Qoo85aAQh;$ zD(c2EIN#D7WwYDLKUg!CotQPD@dp;5FR#bgaace(^x$6g5frD~(_b(MI^J&*A2DRp zf5Q2onfE(zvUb9|9C`66)YFRNM6~xrz4;iVbU=P|*YT2eWHFJJtr+M@zt2qPm)K~rRcqcs=LM12)PX0TT%QO zlf*xkqD3}7l)1J`5W(>=9nR0e6j-<79<11v3ZuXXcQpoCsqY~n`$FN+S}hcVm5Y>G zXnD{@DYs1@{S0z(lW+?86LWKtku$$-(khsh>0qRUXn=84`GRn?77M^_JY`durnN;KE zW#OJ`h<6xcB{I))ekGpc*Ylt}0cx4|OMBDPQvx4`r`}4Ze5_ipdObGMTi3bZHd5PC zcY0;?uBWu$PSvjJeb87nY7ghNv?%M@SoDl6IWt`bQCosfSh$#D6$ea~QhKM^ud2Ut z+9PYJuVpoELmN-A`F$BicO{BSYg@#tS%avVfb}DxL)|NanJ)#zB!2~?#Ot%H7--9N zU$bs0fS5G!m5M4&WK3#a|H|Tgw*?X-;H+Lu@kwA>qSR~7UC7b)7MJXTn6PG>n@8jP zW+}F^X$$c;U~4ryqRF; z>`j!tbLMK4ZGyY643|~?%Mu#fm!l%wAKjBDmd+VYmp3S#$scD$~bxbf|z#)hShN0*AhRaPDcmqrftGlHq4^54MM$Xfy(2> zH8QYVMzmn_oHbvJCB`IN~E&{1*h&0gEM{e zKvWvzp(!BqMX8`t#)~0nq}Wa zr6>FRPyp;AAB&)1$5@;r$23J{K&~>TWjZf7V$wFzmGM95CXhFG1cJNVAXks}C+&2- zbf9Qn*D8N}Afd2kpwDxns3%1uaFhAqDV8ksWiWY|quuLGZ0)SqrJ!Y8yX}@}IyC$C zQ3rCUsn}#>F#D8%D?q~ySy4j&he%Bs{{7V%rl!ui`@KQP?NTi+_iN{cwom&9RaMRR zB~z!hz|0HAgB9_Ijvpe-zr#jLbckJsc>vmo{+im?t8lA;N#fD4?{lb&J0V8Gocq%; f1ihv=QIDh{M_<9V+45Z2{KE4_qW}V3B0uV%GgrOJ literal 0 HcmV?d00001 diff --git a/libraries-server/src/main/resources/truststore.jks b/libraries-server/src/main/resources/truststore.jks new file mode 100644 index 0000000000000000000000000000000000000000..839cb8c35151c2b7c64afca24b6b72caad070a05 GIT binary patch literal 916 zcmezO_TO6u1_mY|W(3o$xs} zE~X|%Muz1J{3AIFGbaABoD&*5saD@gH|APIn|qhRGl}gsUzm=o9G*UXZaLfkb^*)o zjA*-gTf)`m_MQJYE&gJ}p^PHkrj!4^W|XX5a=N7A{;n#yaON&k_bHloe-^*hm?Z91 zlB>xeD=<(C>yn{9D54u}krkl}HQ(Uscha(++qf!T9y+xaEfnXd1O zi0)T?voO%;QH9LK;*_O3mBblqm)!31vU@hm;^%>mh5U@y3R%l0gzi`2yxH!+?kPOi zt!Tnsz1x9B3U2~8STZp)GB6^C5HPs_Lx_=~O<3xi>MmQ;D_g$D<_pdct`+TyzWTQ= zW5Finm(sGEe;ty^>vg$!cV)t>;H#Mev23$*WWBpyJ}Ir;RW+Htrt6{Pk&qz&-XG2@ z8@{&Lu%DX7m47Uny+-3w`=4V611q#Ub(U`xZCtSK^2LO^3(s|HW&N14dV4@A&(kX% z*S_eUPs-bSWRp>avt;CP@7K+G&3=b&1eO-s3f`;Cf91p#$)FW&xME3L8sEBQQDVCvfG>mdwqnk+GXd2ihXqpv z;usF(WoYYmu8DZZa4%1z=+hI+*gpkUykAy5tj#grb*gH!M6TqIcifYBGVe^&T#-2O K*=+x>r_BKeJV|!| literal 0 HcmV?d00001 diff --git a/libraries-server/src/main/webapp/WEB-INF/web.xml b/libraries-server/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..75d7e11c64 --- /dev/null +++ b/libraries-server/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,33 @@ + + + + + http2Jetty + com.baeldung.jetty.http2.Http2JettyServlet + + + http2Jetty + /images/* + + + + push + org.eclipse.jetty.servlets.PushCacheFilter + + ports + 8444 + + + maxAssociations + 32 + + + + push + /* + + + \ No newline at end of file diff --git a/libraries-server/src/main/webapp/http2.html b/libraries-server/src/main/webapp/http2.html new file mode 100644 index 0000000000..4563945a5e --- /dev/null +++ b/libraries-server/src/main/webapp/http2.html @@ -0,0 +1,14 @@ + + + + Baeldung HTTP/2 Client in Jetty + + +

HTTP/2 Demo

+
+ latest articles + rest with spring + weekly reviews +
+ + \ No newline at end of file diff --git a/libraries-server/src/main/webapp/images/homepage-latest_articles.jpg b/libraries-server/src/main/webapp/images/homepage-latest_articles.jpg new file mode 100644 index 0000000000000000000000000000000000000000..59e78e456022f41f7f6167157d4a4dc08e944e27 GIT binary patch literal 18501 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 BH~s(s literal 0 HcmV?d00001 diff --git a/libraries-server/src/main/webapp/images/homepage-rest_with_spring.jpg b/libraries-server/src/main/webapp/images/homepage-rest_with_spring.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43d9221e85f9186b8bbf9e12e5924421462ed04c GIT binary patch literal 18891 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

gHIi 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

  • Dt2>W6b5o~w4CE5}?a6-m+1MpfWN;B- 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 literal 0 HcmV?d00001 diff --git a/libraries-server/src/main/webapp/index.html b/libraries-server/src/main/webapp/index.html new file mode 100644 index 0000000000..2497893d82 --- /dev/null +++ b/libraries-server/src/main/webapp/index.html @@ -0,0 +1,12 @@ + + + + Baeldung: HTTP2 Client in Jetty + + +

    HTTP/1.1

    +
    +

    HTTP/2 Push

    +
    + + \ No newline at end of file