{"id":10069,"date":"2021-10-12T14:58:26","date_gmt":"2021-10-12T12:58:26","guid":{"rendered":"https:\/\/vived.io\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/"},"modified":"2022-09-19T13:10:47","modified_gmt":"2022-09-19T11:10:47","slug":"jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/","title":{"rendered":"JVM Tuesday vol.59 &#8211; WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly"},"content":{"rendered":"\n<h2 id=\"1-minimalistyczny-web-server-trafi-do-javy-18\" data-num=1>1. Minimalistyczny Web Server trafi do Javy 18 \ud83e\uddf8<\/h2>\n\n\n\n<p>Coraz wi\u0119cej kart odkrywa si\u0119 przed nami w kontek\u015bcie nadchodz\u0105cej Javy 18. Jako, \u017ce b\u0119dzie to pierwsze wydanie rozwojowo po niedawno opublikowanym LTSie, wiele os\u00f3b spodziewa si\u0119 po nim naprawd\u0119 wiele. Po ostatnich informacjach m\u00f3wi\u0105cych, \u017ce Project Loom jest w stanie umo\u017cliwiaj\u0105cym jego przeportowanie na inne j\u0119zyki, niekt\u00f3rzy oczekuj\u0105, \u017ce to w\u0142a\u015bnie w JDK 18 dostaniemy jego pierwsze Preview. Tymczasem kolejn\u0105 (po zesz\u0142otygodniowym wprowadzeniu UTF-8 jako domy\u015blnego kodowania) zapowiedzi\u0105 zwi\u0105zan\u0105 z now\u0105 wersj\u0105 jest wbudowany w Jav\u0119 minimalny Web Server (<a href=\"https:\/\/openjdk.java.net\/jeps\/408\">JEP 408<\/a>).<\/p>\n\n\n\n<p>Narz\u0119dzie uruchamiane ma by\u0107 z wiersza polecenia i potrafi\u0107 serwowa\u0107 statyczne pliki w bie\u017c\u0105cym katalogu.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java -m jdk.httpserver<\/pre>\n\n\n\n<p>Narz\u0119dzie ma by\u0107 przydatne do tworzenia prototyp\u00f3w, i ad hocowego kodowania oraz testowania, zw\u0142aszcza w kontek\u015bcie edukacyjnym.<\/p>\n\n\n\n<p>Wersja CLI posiada\u0107 b\u0119dzie podstawowe opcje konfiguracyjne, jak wyb\u00f3r portu czy adresu do zbindowania. Dla tych, kt\u00f3rzy chc\u0105 troch\u0119 bardziej pokonfigurowa\u0107 swoje rozwi\u0105zanie, dost\u0119pna b\u0119dzie te\u017c mo\u017cliwo\u015b\u0107 odpalenia ca\u0142o\u015bci z poziomu kodu javowego.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package com.sun.net.httpserver;\n\npublic final class SimpleFileServer {\n    public static HttpServer createFileServer(InetSocketAddress addr,\n                                              Path rootDirectory,\n                                              OutputLevel outputLevel) {...}\n    public static HttpHandler createFileHandler(Path rootDirectory) {...}\n    public static Filter createOutputFilter(OutputStream out,\n                                            OutputLevel outputLevel) {...}\n    ...\n}\n<\/code><\/pre>\n\n\n\n<p>Pozwol\u0119 sobie tutaj na ko\u0144cu na prywatn\u0105 opini\u0119e. My\u015bla\u0142em, \u017ce jestem JDK-owym maksymalist\u0105, ale jednak dok\u0142adanie Web Serwera (tak jak kiedy\u015b klienta HTTP) do Javy SE wydaje mi si\u0119 by\u0107 jednak czym\u015b deczko nadmiarowym. Rozumiem, \u017ce presja ze strony innych j\u0119zyk\u00f3w na zmniejszanie progu wej\u015bcia jest du\u017ca, ale w \u015bwiecie, w kt\u00f3rym w prosty spos\u00f3b mo\u017cna odpali\u0107 statyczny server takim np. Pythonem nie widz\u0119 sensu robienia tego JVMem. To nie jest tak, \u017ce wszystkie j\u0119zyki musz\u0105 mie\u0107 dok\u0142adnie to samo.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif\" alt=\"58 Best animal gift ideas | animation, animated gif, gif\"\/><figcaption>No, ale mo\u017ce w\u0142a\u015bnie dlatego Python sta\u0142 si\u0119 <a href=\"https:\/\/www.techrepublic.com\/article\/python-ends-c-and-javas-20-year-reign-atop-the-tiobe-index\/\">najpopularniejszym j\u0119zykiem na \u015bwiecie wed\u0142ug TIOBE<\/a>.<\/figcaption><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<h2 id=\"2-droga-do-nowego-kompilatora-kotlina\" data-num=2>2. Droga do nowego kompilatora Kotlina \ud83d\uddfa<\/h2>\n\n\n\n<p>Kotlin dojrzewa i pr\u00f3buje znale\u017a\u0107 dla siebie w\u0142asn\u0105 to\u017csamo\u015b\u0107. Od pocz\u0105tku mocno kojarzony z Androidem, potem zaatakowa\u0142 \u015bwiat backendu, by ostatecznie pr\u00f3bowa\u0107 wbi\u0107 si\u0119 w \u0142aski programist\u00f3w JS, iOS czy te\u017c aplikacji natywnych. Strategia wchodzenia na poszczeg\u00f3lne platformy nie by\u0142a zbyt sp\u00f3jna, ka\u017cde z wyda\u0144 posiada\u0142o troch\u0119 inny zestaw narz\u0119dzi, przez co kKotlinowy zesp\u00f3\u0142 musia\u0142 walczy\u0107 ze spor\u0105 duplikacj\u0105, maj\u0105c\u0105 wp\u0142yw zar\u00f3wno na tempo wdra\u017cania nowych funkcjonalno\u015bci, jak i koszt utrzymania poszczeg\u00f3lnych element\u00f3w. Jednak od pewnego czasu zesp\u00f3\u0142 tworz\u0105cy j\u0119zyk zabra\u0142 si\u0119 za porz\u0105dki i sytuacja powolipowli si\u0119 zmienia.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"What Everyone Must Know About The NEW Kotlin K2 Compiler\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/iTdJJq_LyoY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p>To co pi\u0119kne w Kotlinie, to to, \u017ce w zasadzie z ka\u017cd\u0105 decyzj\u0105 projektow\u0105 dotycz\u0105c\u0105 internal\u00f3w s\u0105 otwarci i transparentni. To jednak nie wszystko &#8211; chyba \u017cadna inna technologia nie dba tak mocno o to, \u017ceby spo\u0142eczno\u015b\u0107 rozumia\u0142a, co dzieje si\u0119 pod mask\u0105. Tym razem opublikowali wideo dok\u0142adnie opisuj\u0105ce, jakie zmiany pojawi\u0142y si\u0119 w <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/10\/the-road-to-the-k2-compiler\/\">nowej iteracji kotlinowego kompilatora (ochrzczonego jako wersja K2<\/a>). Co wi\u0119cej, ca\u0142o\u015b\u0107 podana jest w formie, kt\u00f3ra zainteresuje nie tylko mi\u0142o\u015bnik\u00f3w WhitePaper\u00f3w, ale w zasadzie ka\u017cdego, kto posiada jakie\u015b tam do\u015bwiadczenie jako programista. Jest to chyba najprzyst\u0119pniejsze wprowadzenie do teorii kompilator\u00f3w, z jakim si\u0119 spotka\u0142em.<\/p>\n\n\n\n<p>A jak ju\u017c jeste\u015bmy przy Kotlinie, to ukaza\u0142o si\u0119 te\u017c ankietowe badanie u\u017cytkownik\u00f3w jego Multiplatformowej odmiany, g\u0142\u00f3wnie w kontek\u015bcie mobilnym. Mo\u017cna si\u0119 z niego dowiedzie\u0107 ca\u0142kiem sporo, ale dla mnie najbardziej chyba interesuj\u0105cym faktem by\u0142o to, \u017ce prawie 50% projekt\u00f3w, kt\u00f3re dzi\u015b u\u017cywaj\u0105 Kotlin Multiplatform zdecydowa\u0142y si\u0119 na przej\u015bcie na t\u0105 technologi\u0119 gdy ich aplikacje ju\u017c istnia\u0142y (spodziewa\u0142em si\u0119 znacznie wi\u0119kszej ilo\u015bci GreenField\u00f3w).<\/p>\n\n\n\n<p>Takich smaczk\u00f3w jest sporo, dlatego je\u015bli interesuje Was cho\u0107 troch\u0119 rynek mobilny i szukacie rozwojowych alternatyw dla istniej\u0105cych rozwi\u0105za\u0144 &#8211; <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/10\/multiplatform-survey-q1-q2-2021\/\">zapraszam do lektury<\/a>.<\/p>\n\n\n\n<h2 id=\"3-release-radar-wildfly-quarkus-mockito\" data-num=3>3. Release Radar: WildFly, Quarkus, Mockito \ud83d\udce1<\/h2>\n\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"480\" height=\"284\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/giphy-23.gif\" alt=\"\" class=\"wp-image-2787\"\/><\/figure><\/div>\n\n\n<p>A na koniec &#8211; zestaw ciekawych nowych wyda\u0144. \u017badne z nich nie zas\u0142u\u017cy\u0142o, \u017ceby zosta\u0107 pojedyncz\u0105 gwiazd\u0105 sekcji, za to ka\u017cdy z nich na pewno znajdzie swoich amator\u00f3w.<\/p>\n\n\n\n<p>Dopiero co tydzie\u0144 temu rozpisywali\u015bmy si\u0119 o planach tw\u00f3rc\u00f3w WildFly na przysz\u0142e edycje, a Ci ju\u017c zaskoczyli nas wydaniem <a href=\"https:\/\/www.wildfly.org\/news\/2021\/10\/05\/WildFly25-Final-Released\/\">WildFly 25.0.0<\/a>, kt\u00f3re to trafi\u0142o w r\u0119ce pasjonat\u00f3w serwer\u00f3w aplikacyjnych w zesz\u0142ym tygodniu. To w\u0142a\u015bnie to wydanie ostatecznie pozbywa si\u0119 wsparcia Security Managera oraz wprowadza now\u0105 warstw\u0119 bezpiecze\u0144stwa. Cechuje si\u0119 ono r\u00f3wnie\u017c wsparciem dla JDK 17, a tak\u017ce wsparcie OpenTelemetry. Opr\u00f3cz tego aktualizacj\u0119 otrzyma\u0142y co poniekt\u00f3re specyfikacje MicroProfile, jak Health czy Reactive Messaging.<\/p>\n\n\n\n<p>Drugim wa\u017cnym nowym wydaniem z zesz\u0142ego tygodnia jest <a href=\"https:\/\/quarkus.io\/blog\/quarkus-2-3-0-final-released\/\">Quarkus 2.3.0<\/a>. Kolejny minor tego obecnie znajduj\u0105cego si\u0119 na \u015bcie\u017cce wznosz\u0105cej frameworku w dalszym ci\u0105gu inwestuje w zewn\u0119trzne integracje. Nowe wydanie wprowadza prosto-z-pude\u0142kowe wsparcie dla Neo4J, a tak\u017ce wsparcie migracji MongoDB z u\u017cyciem Liquibase. Pojawi\u0142o si\u0119 r\u00f3wnie\u017c wsparcie dla Interceptor\u00f3w Hibernate. Testowanie aplikacji u\u0142atwi\u0107 maj\u0105 za\u015b dwie nowe adnotacje &#8211; @QuarkusMainTest oraz @QuarkusMainIntegrationTest, u\u0142atwiaj\u0105ce testowanie napisanych w Quarkusie aplikacji CLI.<\/p>\n\n\n\n<p>Ostatni\u0105 ciekawostk\u0105 jest z pewno\u015bci\u0105 du\u017ce wydanie Mockito. Po <a href=\"https:\/\/github.com\/mockito\/mockito\/releases\">edycji 4.0<\/a> mo\u017cna by spodziewa\u0107 czego\u015b du\u017cego\u2026 ale nie tym razem. \u201cCzw\u00f3reczka\u201d sprowadza si\u0119 bowiem w zasadzie do czyszczenia pierwotnie \u201czdepracowanych\u201d funkcjonalno\u015bci. Na pewno u\u0142atwi to tw\u00f3rcom biblioteki dalszy rozw\u00f3j, ale na nowo\u015bci u\u017cytkownicy musz\u0105 czeka\u0107 do kolejnych wyda\u0144.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>W dniu dzisiejszym nie mamy dla Was \u017cadnych rewolucji, ale mimo wszystko to by\u0142 ciekawy tydzie\u0144 z godnym przedyskutowania JEPem i kilkoma Releasami. Dodatkowo: sporo informacji o nowym kompilatorze Kotlina.<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-10069","post","type-post","status-publish","format-standard","hentry","category-jvm-pl"],"acf":{"estimated_reading_time":"4","weekly_summary":true,"feature_image_blog":false,"push_notification_image":false,"feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JVM Tuesday vol.59 - WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuesday vol.59 - WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly - Vived\" \/>\n<meta property=\"og:description\" content=\"W dniu dzisiejszym nie mamy dla Was \u017cadnych rewolucji, ale mimo wszystko to by\u0142 ciekawy tydzie\u0144 z godnym przedyskutowania JEPem i kilkoma Releasami. Dodatkowo: sporo informacji o nowym kompilatorze Kotlina.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-10-12T12:58:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/Screenshot-2021-10-12-at-14.57.48.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1248\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Tuesday vol.59 &#8211; WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly\",\"datePublished\":\"2021-10-12T12:58:26+00:00\",\"dateModified\":\"2022-09-19T11:10:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/\"},\"wordCount\":926,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/\",\"name\":\"JVM Tuesday vol.59 - WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif\",\"datePublished\":\"2021-10-12T12:58:26+00:00\",\"dateModified\":\"2022-09-19T11:10:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuesday vol.59 &#8211; WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\",\"name\":\"Artur Skowro\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"caption\":\"Artur Skowro\u0144ski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JVM Tuesday vol.59 - WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Tuesday vol.59 - WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly - Vived","og_description":"W dniu dzisiejszym nie mamy dla Was \u017cadnych rewolucji, ale mimo wszystko to by\u0142 ciekawy tydzie\u0144 z godnym przedyskutowania JEPem i kilkoma Releasami. Dodatkowo: sporo informacji o nowym kompilatorze Kotlina.","og_url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/","og_site_name":"Vived","article_published_time":"2021-10-12T12:58:26+00:00","article_modified_time":"2022-09-19T11:10:47+00:00","og_image":[{"width":2400,"height":1248,"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/Screenshot-2021-10-12-at-14.57.48.png","type":"image\/png"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Tuesday vol.59 &#8211; WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly","datePublished":"2021-10-12T12:58:26+00:00","dateModified":"2022-09-19T11:10:47+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/"},"wordCount":926,"commentCount":0,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif","articleSection":["JVM"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/","url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/","name":"JVM Tuesday vol.59 - WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif","datePublished":"2021-10-12T12:58:26+00:00","dateModified":"2022-09-19T11:10:47+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-59-webserver-w-jdk-18-kotlin-k2-mockito-quarkus-wildfly\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Tuesday vol.59 &#8211; WebServer w JDK 18, Kotlin K2, Mockito, Quarkus, WildFly"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. Minimalistyczny Web Server trafi do Javy 18 \ud83e\uddf8<\/h2>\n","innerContent":["\n<h2>1. Minimalistyczny Web Server trafi do Javy 18 \ud83e\uddf8<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Coraz wi\u0119cej kart odkrywa si\u0119 przed nami w kontek\u015bcie nadchodz\u0105cej Javy 18. Jako, \u017ce b\u0119dzie to pierwsze wydanie rozwojowo po niedawno opublikowanym LTSie, wiele os\u00f3b spodziewa si\u0119 po nim naprawd\u0119 wiele. Po ostatnich informacjach m\u00f3wi\u0105cych, \u017ce Project Loom jest w stanie umo\u017cliwiaj\u0105cym jego przeportowanie na inne j\u0119zyki, niekt\u00f3rzy oczekuj\u0105, \u017ce to w\u0142a\u015bnie w JDK 18 dostaniemy jego pierwsze Preview. Tymczasem kolejn\u0105 (po zesz\u0142otygodniowym wprowadzeniu UTF-8 jako domy\u015blnego kodowania) zapowiedzi\u0105 zwi\u0105zan\u0105 z now\u0105 wersj\u0105 jest wbudowany w Jav\u0119 minimalny Web Server (<a href=\"https:\/\/openjdk.java.net\/jeps\/408\">JEP 408<\/a>).<\/p>\n","innerContent":["\n<p>Coraz wi\u0119cej kart odkrywa si\u0119 przed nami w kontek\u015bcie nadchodz\u0105cej Javy 18. Jako, \u017ce b\u0119dzie to pierwsze wydanie rozwojowo po niedawno opublikowanym LTSie, wiele os\u00f3b spodziewa si\u0119 po nim naprawd\u0119 wiele. Po ostatnich informacjach m\u00f3wi\u0105cych, \u017ce Project Loom jest w stanie umo\u017cliwiaj\u0105cym jego przeportowanie na inne j\u0119zyki, niekt\u00f3rzy oczekuj\u0105, \u017ce to w\u0142a\u015bnie w JDK 18 dostaniemy jego pierwsze Preview. Tymczasem kolejn\u0105 (po zesz\u0142otygodniowym wprowadzeniu UTF-8 jako domy\u015blnego kodowania) zapowiedzi\u0105 zwi\u0105zan\u0105 z now\u0105 wersj\u0105 jest wbudowany w Jav\u0119 minimalny Web Server (<a href=\"https:\/\/openjdk.java.net\/jeps\/408\">JEP 408<\/a>).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Narz\u0119dzie uruchamiane ma by\u0107 z wiersza polecenia i potrafi\u0107 serwowa\u0107 statyczne pliki w bie\u017c\u0105cym katalogu.<\/p>\n","innerContent":["\n<p>Narz\u0119dzie uruchamiane ma by\u0107 z wiersza polecenia i potrafi\u0107 serwowa\u0107 statyczne pliki w bie\u017c\u0105cym katalogu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/preformatted","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-preformatted\">java -m jdk.httpserver<\/pre>\n","innerContent":["\n<pre class=\"wp-block-preformatted\">java -m jdk.httpserver<\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Narz\u0119dzie ma by\u0107 przydatne do tworzenia prototyp\u00f3w, i ad hocowego kodowania oraz testowania, zw\u0142aszcza w kontek\u015bcie edukacyjnym.<\/p>\n","innerContent":["\n<p>Narz\u0119dzie ma by\u0107 przydatne do tworzenia prototyp\u00f3w, i ad hocowego kodowania oraz testowania, zw\u0142aszcza w kontek\u015bcie edukacyjnym.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wersja CLI posiada\u0107 b\u0119dzie podstawowe opcje konfiguracyjne, jak wyb\u00f3r portu czy adresu do zbindowania. Dla tych, kt\u00f3rzy chc\u0105 troch\u0119 bardziej pokonfigurowa\u0107 swoje rozwi\u0105zanie, dost\u0119pna b\u0119dzie te\u017c mo\u017cliwo\u015b\u0107 odpalenia ca\u0142o\u015bci z poziomu kodu javowego.<\/p>\n","innerContent":["\n<p>Wersja CLI posiada\u0107 b\u0119dzie podstawowe opcje konfiguracyjne, jak wyb\u00f3r portu czy adresu do zbindowania. Dla tych, kt\u00f3rzy chc\u0105 troch\u0119 bardziej pokonfigurowa\u0107 swoje rozwi\u0105zanie, dost\u0119pna b\u0119dzie te\u017c mo\u017cliwo\u015b\u0107 odpalenia ca\u0142o\u015bci z poziomu kodu javowego.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/code","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-code\"><code>package com.sun.net.httpserver;\n\npublic final class SimpleFileServer {\n    public static HttpServer createFileServer(InetSocketAddress addr,\n                                              Path rootDirectory,\n                                              OutputLevel outputLevel) {...}\n    public static HttpHandler createFileHandler(Path rootDirectory) {...}\n    public static Filter createOutputFilter(OutputStream out,\n                                            OutputLevel outputLevel) {...}\n    ...\n}\n<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-code\"><code>package com.sun.net.httpserver;\n\npublic final class SimpleFileServer {\n    public static HttpServer createFileServer(InetSocketAddress addr,\n                                              Path rootDirectory,\n                                              OutputLevel outputLevel) {...}\n    public static HttpHandler createFileHandler(Path rootDirectory) {...}\n    public static Filter createOutputFilter(OutputStream out,\n                                            OutputLevel outputLevel) {...}\n    ...\n}\n<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pozwol\u0119 sobie tutaj na ko\u0144cu na prywatn\u0105 opini\u0119e. My\u015bla\u0142em, \u017ce jestem JDK-owym maksymalist\u0105, ale jednak dok\u0142adanie Web Serwera (tak jak kiedy\u015b klienta HTTP) do Javy SE wydaje mi si\u0119 by\u0107 jednak czym\u015b deczko nadmiarowym. Rozumiem, \u017ce presja ze strony innych j\u0119zyk\u00f3w na zmniejszanie progu wej\u015bcia jest du\u017ca, ale w \u015bwiecie, w kt\u00f3rym w prosty spos\u00f3b mo\u017cna odpali\u0107 statyczny server takim np. Pythonem nie widz\u0119 sensu robienia tego JVMem. To nie jest tak, \u017ce wszystkie j\u0119zyki musz\u0105 mie\u0107 dok\u0142adnie to samo.<\/p>\n","innerContent":["\n<p>Pozwol\u0119 sobie tutaj na ko\u0144cu na prywatn\u0105 opini\u0119e. My\u015bla\u0142em, \u017ce jestem JDK-owym maksymalist\u0105, ale jednak dok\u0142adanie Web Serwera (tak jak kiedy\u015b klienta HTTP) do Javy SE wydaje mi si\u0119 by\u0107 jednak czym\u015b deczko nadmiarowym. Rozumiem, \u017ce presja ze strony innych j\u0119zyk\u00f3w na zmniejszanie progu wej\u015bcia jest du\u017ca, ale w \u015bwiecie, w kt\u00f3rym w prosty spos\u00f3b mo\u017cna odpali\u0107 statyczny server takim np. Pythonem nie widz\u0119 sensu robienia tego JVMem. To nie jest tak, \u017ce wszystkie j\u0119zyki musz\u0105 mie\u0107 dok\u0142adnie to samo.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif\" alt=\"58 Best animal gift ideas | animation, animated gif, gif\"\/><figcaption>No, ale mo\u017ce w\u0142a\u015bnie dlatego Python sta\u0142 si\u0119 <a href=\"https:\/\/www.techrepublic.com\/article\/python-ends-c-and-javas-20-year-reign-atop-the-tiobe-index\/\">najpopularniejszym j\u0119zykiem na \u015bwiecie wed\u0142ug TIOBE<\/a>.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/777101def367443ef3ecb6fccc89f060.gif\" alt=\"58 Best animal gift ideas | animation, animated gif, gif\"\/><figcaption>No, ale mo\u017ce w\u0142a\u015bnie dlatego Python sta\u0142 si\u0119 <a href=\"https:\/\/www.techrepublic.com\/article\/python-ends-c-and-javas-20-year-reign-atop-the-tiobe-index\/\">najpopularniejszym j\u0119zykiem na \u015bwiecie wed\u0142ug TIOBE<\/a>.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><\/p>\n","innerContent":["\n<p><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Droga do nowego kompilatora Kotlina \ud83d\uddfa<\/h2>\n","innerContent":["\n<h2>2. Droga do nowego kompilatora Kotlina \ud83d\uddfa<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Kotlin dojrzewa i pr\u00f3buje znale\u017a\u0107 dla siebie w\u0142asn\u0105 to\u017csamo\u015b\u0107. Od pocz\u0105tku mocno kojarzony z Androidem, potem zaatakowa\u0142 \u015bwiat backendu, by ostatecznie pr\u00f3bowa\u0107 wbi\u0107 si\u0119 w \u0142aski programist\u00f3w JS, iOS czy te\u017c aplikacji natywnych. Strategia wchodzenia na poszczeg\u00f3lne platformy nie by\u0142a zbyt sp\u00f3jna, ka\u017cde z wyda\u0144 posiada\u0142o troch\u0119 inny zestaw narz\u0119dzi, przez co kKotlinowy zesp\u00f3\u0142 musia\u0142 walczy\u0107 ze spor\u0105 duplikacj\u0105, maj\u0105c\u0105 wp\u0142yw zar\u00f3wno na tempo wdra\u017cania nowych funkcjonalno\u015bci, jak i koszt utrzymania poszczeg\u00f3lnych element\u00f3w. Jednak od pewnego czasu zesp\u00f3\u0142 tworz\u0105cy j\u0119zyk zabra\u0142 si\u0119 za porz\u0105dki i sytuacja powolipowli si\u0119 zmienia.<\/p>\n","innerContent":["\n<p>Kotlin dojrzewa i pr\u00f3buje znale\u017a\u0107 dla siebie w\u0142asn\u0105 to\u017csamo\u015b\u0107. Od pocz\u0105tku mocno kojarzony z Androidem, potem zaatakowa\u0142 \u015bwiat backendu, by ostatecznie pr\u00f3bowa\u0107 wbi\u0107 si\u0119 w \u0142aski programist\u00f3w JS, iOS czy te\u017c aplikacji natywnych. Strategia wchodzenia na poszczeg\u00f3lne platformy nie by\u0142a zbyt sp\u00f3jna, ka\u017cde z wyda\u0144 posiada\u0142o troch\u0119 inny zestaw narz\u0119dzi, przez co kKotlinowy zesp\u00f3\u0142 musia\u0142 walczy\u0107 ze spor\u0105 duplikacj\u0105, maj\u0105c\u0105 wp\u0142yw zar\u00f3wno na tempo wdra\u017cania nowych funkcjonalno\u015bci, jak i koszt utrzymania poszczeg\u00f3lnych element\u00f3w. Jednak od pewnego czasu zesp\u00f3\u0142 tworz\u0105cy j\u0119zyk zabra\u0142 si\u0119 za porz\u0105dki i sytuacja powolipowli si\u0119 zmienia.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=iTdJJq_LyoY","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=iTdJJq_LyoY\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=iTdJJq_LyoY\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To co pi\u0119kne w Kotlinie, to to, \u017ce w zasadzie z ka\u017cd\u0105 decyzj\u0105 projektow\u0105 dotycz\u0105c\u0105 internal\u00f3w s\u0105 otwarci i transparentni. To jednak nie wszystko - chyba \u017cadna inna technologia nie dba tak mocno o to, \u017ceby spo\u0142eczno\u015b\u0107 rozumia\u0142a, co dzieje si\u0119 pod mask\u0105. Tym razem opublikowali wideo dok\u0142adnie opisuj\u0105ce, jakie zmiany pojawi\u0142y si\u0119 w <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/10\/the-road-to-the-k2-compiler\/\">nowej iteracji kotlinowego kompilatora (ochrzczonego jako wersja K2<\/a>). Co wi\u0119cej, ca\u0142o\u015b\u0107 podana jest w formie, kt\u00f3ra zainteresuje nie tylko mi\u0142o\u015bnik\u00f3w WhitePaper\u00f3w, ale w zasadzie ka\u017cdego, kto posiada jakie\u015b tam do\u015bwiadczenie jako programista. Jest to chyba najprzyst\u0119pniejsze wprowadzenie do teorii kompilator\u00f3w, z jakim si\u0119 spotka\u0142em.<\/p>\n","innerContent":["\n<p>To co pi\u0119kne w Kotlinie, to to, \u017ce w zasadzie z ka\u017cd\u0105 decyzj\u0105 projektow\u0105 dotycz\u0105c\u0105 internal\u00f3w s\u0105 otwarci i transparentni. To jednak nie wszystko - chyba \u017cadna inna technologia nie dba tak mocno o to, \u017ceby spo\u0142eczno\u015b\u0107 rozumia\u0142a, co dzieje si\u0119 pod mask\u0105. Tym razem opublikowali wideo dok\u0142adnie opisuj\u0105ce, jakie zmiany pojawi\u0142y si\u0119 w <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/10\/the-road-to-the-k2-compiler\/\">nowej iteracji kotlinowego kompilatora (ochrzczonego jako wersja K2<\/a>). Co wi\u0119cej, ca\u0142o\u015b\u0107 podana jest w formie, kt\u00f3ra zainteresuje nie tylko mi\u0142o\u015bnik\u00f3w WhitePaper\u00f3w, ale w zasadzie ka\u017cdego, kto posiada jakie\u015b tam do\u015bwiadczenie jako programista. Jest to chyba najprzyst\u0119pniejsze wprowadzenie do teorii kompilator\u00f3w, z jakim si\u0119 spotka\u0142em.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A jak ju\u017c jeste\u015bmy przy Kotlinie, to ukaza\u0142o si\u0119 te\u017c ankietowe badanie u\u017cytkownik\u00f3w jego Multiplatformowej odmiany, g\u0142\u00f3wnie w kontek\u015bcie mobilnym. Mo\u017cna si\u0119 z niego dowiedzie\u0107 ca\u0142kiem sporo, ale dla mnie najbardziej chyba interesuj\u0105cym faktem by\u0142o to, \u017ce prawie 50% projekt\u00f3w, kt\u00f3re dzi\u015b u\u017cywaj\u0105 Kotlin Multiplatform zdecydowa\u0142y si\u0119 na przej\u015bcie na t\u0105 technologi\u0119 gdy ich aplikacje ju\u017c istnia\u0142y (spodziewa\u0142em si\u0119 znacznie wi\u0119kszej ilo\u015bci GreenField\u00f3w).<\/p>\n","innerContent":["\n<p>A jak ju\u017c jeste\u015bmy przy Kotlinie, to ukaza\u0142o si\u0119 te\u017c ankietowe badanie u\u017cytkownik\u00f3w jego Multiplatformowej odmiany, g\u0142\u00f3wnie w kontek\u015bcie mobilnym. Mo\u017cna si\u0119 z niego dowiedzie\u0107 ca\u0142kiem sporo, ale dla mnie najbardziej chyba interesuj\u0105cym faktem by\u0142o to, \u017ce prawie 50% projekt\u00f3w, kt\u00f3re dzi\u015b u\u017cywaj\u0105 Kotlin Multiplatform zdecydowa\u0142y si\u0119 na przej\u015bcie na t\u0105 technologi\u0119 gdy ich aplikacje ju\u017c istnia\u0142y (spodziewa\u0142em si\u0119 znacznie wi\u0119kszej ilo\u015bci GreenField\u00f3w).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Takich smaczk\u00f3w jest sporo, dlatego je\u015bli interesuje Was cho\u0107 troch\u0119 rynek mobilny i szukacie rozwojowych alternatyw dla istniej\u0105cych rozwi\u0105za\u0144 - <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/10\/multiplatform-survey-q1-q2-2021\/\">zapraszam do lektury<\/a>.<\/p>\n","innerContent":["\n<p>Takich smaczk\u00f3w jest sporo, dlatego je\u015bli interesuje Was cho\u0107 troch\u0119 rynek mobilny i szukacie rozwojowych alternatyw dla istniej\u0105cych rozwi\u0105za\u0144 - <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/10\/multiplatform-survey-q1-q2-2021\/\">zapraszam do lektury<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Release Radar: WildFly, Quarkus, Mockito \ud83d\udce1<\/h2>\n","innerContent":["\n<h2>3. Release Radar: WildFly, Quarkus, Mockito \ud83d\udce1<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><\/p>\n","innerContent":["\n<p><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":2787,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/giphy-23.gif\" alt=\"\" class=\"wp-image-2787\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/giphy-23.gif\" alt=\"\" class=\"wp-image-2787\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A na koniec - zestaw ciekawych nowych wyda\u0144. \u017badne z nich nie zas\u0142u\u017cy\u0142o, \u017ceby zosta\u0107 pojedyncz\u0105 gwiazd\u0105 sekcji, za to ka\u017cdy z nich na pewno znajdzie swoich amator\u00f3w.<\/p>\n","innerContent":["\n<p>A na koniec - zestaw ciekawych nowych wyda\u0144. \u017badne z nich nie zas\u0142u\u017cy\u0142o, \u017ceby zosta\u0107 pojedyncz\u0105 gwiazd\u0105 sekcji, za to ka\u017cdy z nich na pewno znajdzie swoich amator\u00f3w.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dopiero co tydzie\u0144 temu rozpisywali\u015bmy si\u0119 o planach tw\u00f3rc\u00f3w WildFly na przysz\u0142e edycje, a Ci ju\u017c zaskoczyli nas wydaniem <a href=\"https:\/\/www.wildfly.org\/news\/2021\/10\/05\/WildFly25-Final-Released\/\">WildFly 25.0.0<\/a>, kt\u00f3re to trafi\u0142o w r\u0119ce pasjonat\u00f3w serwer\u00f3w aplikacyjnych w zesz\u0142ym tygodniu. To w\u0142a\u015bnie to wydanie ostatecznie pozbywa si\u0119 wsparcia Security Managera oraz wprowadza now\u0105 warstw\u0119 bezpiecze\u0144stwa. Cechuje si\u0119 ono r\u00f3wnie\u017c wsparciem dla JDK 17, a tak\u017ce wsparcie OpenTelemetry. Opr\u00f3cz tego aktualizacj\u0119 otrzyma\u0142y co poniekt\u00f3re specyfikacje MicroProfile, jak Health czy Reactive Messaging.<\/p>\n","innerContent":["\n<p>Dopiero co tydzie\u0144 temu rozpisywali\u015bmy si\u0119 o planach tw\u00f3rc\u00f3w WildFly na przysz\u0142e edycje, a Ci ju\u017c zaskoczyli nas wydaniem <a href=\"https:\/\/www.wildfly.org\/news\/2021\/10\/05\/WildFly25-Final-Released\/\">WildFly 25.0.0<\/a>, kt\u00f3re to trafi\u0142o w r\u0119ce pasjonat\u00f3w serwer\u00f3w aplikacyjnych w zesz\u0142ym tygodniu. To w\u0142a\u015bnie to wydanie ostatecznie pozbywa si\u0119 wsparcia Security Managera oraz wprowadza now\u0105 warstw\u0119 bezpiecze\u0144stwa. Cechuje si\u0119 ono r\u00f3wnie\u017c wsparciem dla JDK 17, a tak\u017ce wsparcie OpenTelemetry. Opr\u00f3cz tego aktualizacj\u0119 otrzyma\u0142y co poniekt\u00f3re specyfikacje MicroProfile, jak Health czy Reactive Messaging.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Drugim wa\u017cnym nowym wydaniem z zesz\u0142ego tygodnia jest <a href=\"https:\/\/quarkus.io\/blog\/quarkus-2-3-0-final-released\/\">Quarkus 2.3.0<\/a>. Kolejny minor tego obecnie znajduj\u0105cego si\u0119 na \u015bcie\u017cce wznosz\u0105cej frameworku w dalszym ci\u0105gu inwestuje w zewn\u0119trzne integracje. Nowe wydanie wprowadza prosto-z-pude\u0142kowe wsparcie dla Neo4J, a tak\u017ce wsparcie migracji MongoDB z u\u017cyciem Liquibase. Pojawi\u0142o si\u0119 r\u00f3wnie\u017c wsparcie dla Interceptor\u00f3w Hibernate. Testowanie aplikacji u\u0142atwi\u0107 maj\u0105 za\u015b dwie nowe adnotacje - @QuarkusMainTest oraz @QuarkusMainIntegrationTest, u\u0142atwiaj\u0105ce testowanie napisanych w Quarkusie aplikacji CLI.<\/p>\n","innerContent":["\n<p>Drugim wa\u017cnym nowym wydaniem z zesz\u0142ego tygodnia jest <a href=\"https:\/\/quarkus.io\/blog\/quarkus-2-3-0-final-released\/\">Quarkus 2.3.0<\/a>. Kolejny minor tego obecnie znajduj\u0105cego si\u0119 na \u015bcie\u017cce wznosz\u0105cej frameworku w dalszym ci\u0105gu inwestuje w zewn\u0119trzne integracje. Nowe wydanie wprowadza prosto-z-pude\u0142kowe wsparcie dla Neo4J, a tak\u017ce wsparcie migracji MongoDB z u\u017cyciem Liquibase. Pojawi\u0142o si\u0119 r\u00f3wnie\u017c wsparcie dla Interceptor\u00f3w Hibernate. Testowanie aplikacji u\u0142atwi\u0107 maj\u0105 za\u015b dwie nowe adnotacje - @QuarkusMainTest oraz @QuarkusMainIntegrationTest, u\u0142atwiaj\u0105ce testowanie napisanych w Quarkusie aplikacji CLI.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatni\u0105 ciekawostk\u0105 jest z pewno\u015bci\u0105 du\u017ce wydanie Mockito. Po <a href=\"https:\/\/github.com\/mockito\/mockito\/releases\">edycji 4.0<\/a> mo\u017cna by spodziewa\u0107 czego\u015b du\u017cego\u2026 ale nie tym razem. \u201cCzw\u00f3reczka\u201d sprowadza si\u0119 bowiem w zasadzie do czyszczenia pierwotnie \u201czdepracowanych\u201d funkcjonalno\u015bci. Na pewno u\u0142atwi to tw\u00f3rcom biblioteki dalszy rozw\u00f3j, ale na nowo\u015bci u\u017cytkownicy musz\u0105 czeka\u0107 do kolejnych wyda\u0144.<\/p>\n","innerContent":["\n<p>Ostatni\u0105 ciekawostk\u0105 jest z pewno\u015bci\u0105 du\u017ce wydanie Mockito. Po <a href=\"https:\/\/github.com\/mockito\/mockito\/releases\">edycji 4.0<\/a> mo\u017cna by spodziewa\u0107 czego\u015b du\u017cego\u2026 ale nie tym razem. \u201cCzw\u00f3reczka\u201d sprowadza si\u0119 bowiem w zasadzie do czyszczenia pierwotnie \u201czdepracowanych\u201d funkcjonalno\u015bci. Na pewno u\u0142atwi to tw\u00f3rcom biblioteki dalszy rozw\u00f3j, ale na nowo\u015bci u\u017cytkownicy musz\u0105 czeka\u0107 do kolejnych wyda\u0144.<\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10069","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=10069"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10069\/revisions"}],"predecessor-version":[{"id":10552,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10069\/revisions\/10552"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10069"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10069"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10069"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}