1"use strict";(self.webpackChunkarmeria_site=self.webpackChunkarmeria_site||[]).push([["44"],{74941(e,n,r){r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>t,toc:()=>c});var t=r(39027),s=r(74848),i=r(28453);let o={date:new Date("2020-05-14T00:00:00.000Z")},a="Armeria Newsletter vol. 0",l={authorsImageUrls:[]},c=[{value:"From the devs",id:"from-the-devs",level:2},{value:"From the community",id:"from-the-community",level:2},{value:"We need your comments",id:"we-need-your-comments",level:2},{value:"Good first issues",id:"good-first-issues",level:2},{value:"Stay tuned",id:"stay-tuned",level:2},{value:"Thank you!",id:"thank-you",level:2}];function h(e){let n={a:"a",code:"code",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components},{AnimatedLogo:r,Mailchimp:t,ThankYou:o}=n;return r||u("AnimatedLogo",!0),t||u("Mailchimp",!0),o||u("ThankYou",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r,{}),"\n",(0,s.jsx)(n.h2,{id:"from-the-devs",children:"From the devs"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://armeria.dev/",children:"Our brand new web site"})," is now available! \u{1F984}","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs",children:"Official documentation"})," that looks better"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/community/articles",children:"Fascinating articles and slides"})," from our community"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/community",children:"Contributor manual"})," for your next participation"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/release-notes/0.99.5",children:"Armeria 0.99.5"})," has been released.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["New ",(0,s.jsx)(n.a,{href:"type://https://javadoc.io/doc/com.linecorp.armeria/armeria-javadoc/latest/com/linecorp/armeria/client/retry/RetryRule.html",children:"RetryRule"})," API that allows convenient construction of complex retry policy"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://spring.io/guides/gs/service-registration-and-discovery/",children:"Eureka service discovery"})," support"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/grpc/grpc-kotlin",children:(0,s.jsx)(n.code,{children:"grpc-kotlin"})})," support"]}),"\n"]}),"\n"]}),"\n"]}),"\n","\n",(0,s.jsx)(n.h2,{id:"from-the-community",children:"From the community"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://engineering.linecorp.com/en/blog/monitoring-a-spring-boot-app-in-kubernetes-what-i-learned-from-devoxx-belgium-2019/",children:"Monitoring a Spring Boot app in Kubernetes \u2013 What I learned from Devoxx Belgium 2019"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/nirvanarsc",children:(0,s.jsx)(n.strong,{children:"@nirvanarsc"})})," shows how he ran his Armeria-based Spring Boot application using Docker and Kubernetes."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://speakerdeck.com/line_developers/lesson-learned-from-the-adoption-of-armeria-to-lines-authentication-system",children:"Lessons learned from the adoption of Armeria to LINE's authentication system"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/imasahiro",children:(0,s.jsx)(n.strong,{children:"@imasahiro"})})," tells about his successful migration from a home-grown HTTP/2 server based on Netty 4.1.0.Beta8 (!) to Armeria."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"we-need-your-comments",children:"We need your comments"}),"\n",(0,s.jsx)(n.p,{children:"Your opinion means a lot to us. Please let us know what you think about these proposals:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/line/armeria/issues/2148",children:"#2148"})," Provide a way to build an HTTP client request fluently"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/line/armeria/issues/2364",children:"#2364"})," Split ",(0,s.jsx)(n.a,{href:"type://https://javadoc.io/doc/com.linecorp.armeria/armeria-javadoc/latest/com/linecorp/armeria/client/WebClient.html",children:"WebClient"})," into blocking / async versions?"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/line/armeria/issues/2629",children:"#2629"})," Context-awareness of ",(0,s.jsx)(n.code,{children:"ServiceRequestContext.blockingTaskExecutor()"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"good-first-issues",children:"Good first issues"}),"\n",(0,s.jsx)(n.p,{children:"Want to contribute but not sure where to start from? Try one of these:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/line/armeria/issues/1810",children:"#1810"})," ",(0,s.jsx)(n.code,{children:"String"}),"-based headers/content sanitizer implementation"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/line/armeria/issues/1934",children:"#1934"}),"\xa0",(0,s.jsx)(n.code,{children:":examples:static-files:test"})," fails when a home directory has ",(0,s.jsx)(n.code,{children:"index.html"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/line/armeria/issues/2119",children:"#2119"})," Override new ",(0,s.jsx)(n.code,{children:"CompletableFuture"})," methods in Java 12 for ",(0,s.jsx)(n.code,{children:"RequestContextAwareCompletableFuture"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"stay-tuned",children:"Stay tuned"}),"\n",(0,s.jsx)(n.p,{children:"Sign up for our newsletters to keep up-to-date with new releases and useful tips!"}),"\n",(0,s.jsx)("div",{style:{maxWidth:"320px",marginTop:"0.5rem"},children:(0,s.jsx)(t,{})}
1),"\n",(0,s.jsx)(n.h2,{id:"thank-you",children:"Thank you!"}),"\n",(0,s.jsx)(o,{message:()=>(0,s.jsx)(n.p,{children:"Since our last newsletter, we received awesome contributions from the following contributors:"}),usernames:["andrewoma","anuraaga","Charliocat","eonezhang","gary-lo","ghkim3221","heowc","hexoul","hueneburg","ikhoon","imasahiro","jrhee17","KarboniteKream","max904-github","minwoox","mono0x","renaudb","shakuzen","syleeeee","tobias-","trustin"]})]})}function d(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}function u(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},28453(e,n,r){r.d(n,{R:()=>o,x:()=>a});var t=r(96540);let s={},i=t.createContext(s);function o(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:n},e.children)}},39027(e){e.exports=JSON.parse('{"permalink":"/news/20200514-newsletter-0","editUrl":"https://github.com/line/armeria/edit/main/site/src/content/news/20200514-newsletter-0.mdx","source":"@site/src/content/news/20200514-newsletter-0.mdx","title":"Armeria Newsletter vol. 0","description":"From the devs","date":"2020-05-14T00:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"date":"2020-05-14T00:00:00.000Z"},"unlisted":false,"prevItem":{"title":"Armeria Newsletter vol. 1","permalink":"/news/20200703-newsletter-1"}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.