{"id":177532,"date":"2019-11-18T11:43:18","date_gmt":"2019-11-18T03:43:18","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=64755"},"modified":"2019-11-18T11:43:18","modified_gmt":"2019-11-18T03:43:18","slug":"java-weekly-issue-308","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/11\/18\/java-weekly-issue-308\/","title":{"rendered":"Java Weekly, Issue 308"},"content":{"rendered":"<h2 data-id=\"spring-and-java\"><strong>1. Spring and Java<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"spring-and-java\"><\/div>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/11\/14\/spring-security-oauth-2-0-roadmap-update\"><strong>&gt;&gt; Spring Security OAuth 2.0 Roadmap Update<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<p>Following the story of Spring Security <strong>simplifying and replacing the legacy Spring Security OAuth 2.x project<\/strong>, with full feature parity expected in Spring Security 5.3!<\/p>\n<h4><strong><a href=\"https:\/\/www.marcobehler.com\/guides\/a-guide-to-java-versions-and-features\">&gt;&gt; A guide to Java versions and features<\/a>\u00a0<\/strong>[<span style=\"color: #800000;\">marcobehler.com<\/span>]<\/h4>\n<p>A good primer covering Java installation, as well as its various distributions, versions, and features by version.<\/p>\n<h4><a href=\"https:\/\/medium.com\/@NetflixTechBlog\/introducing-jvmquake-ec944c60ba70\"><strong>&gt;&gt; Garbage collecting unhealthy JVMs, a proactive approach<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">medium.com<\/span>]<\/h4>\n<p>A Netflix skunkworks tool, inspired by jvmkill, to <strong>detect and kill JVM processes that are spending too much time in GC<\/strong>.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"http:\/\/marxsoftware.blogspot.com\/2019\/11\/jdk-14-cms-gc-obe.html\"><strong>&gt;&gt; JDK 14: CMS GC is OBE<\/strong><\/a> [<span style=\"color: #800000;\">marxsoftware.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/4comprehension.com\/preview-experimental-and-incubating-features-in-java\/\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Preview, Experimental, and Incubating Features in Java<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">4<\/span><\/span><span class=\"t-bg-white l-pa2 l-d-i\"><span style=\"color: #800000;\">comprehension.com<\/span>]<\/span><\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.jetbrains.com\/idea\/2019\/11\/java-13-and-intellij-idea\/\"><strong>&gt;&gt; Java 13 and IntelliJ IDEA<\/strong><\/a> [<span style=\"color: #800000;\">blog.jetbrains.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/openjdk.java.net\/jeps\/359\"><strong>&gt;&gt; JEP 359: Records (Preview)<\/strong><\/a> [<span style=\"color: #800000;\">openjdk.java.net<\/span>] and <a href=\"https:\/\/openjdk.java.net\/jeps\/305\"><strong>&gt;&gt; JEP 305: Pattern Matching for instanceof (Preview)<br \/>\n<\/strong><\/a> [<span style=\"color: #800000;\">openjdk.java.net<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/rieckpil.de\/create-real-time-applications-with-jakarta-ee-websocket\/\"><strong>&gt;&gt; Create real-time applications with Jakarta EE WebSocket<\/strong><\/a> [<span style=\"color: #800000;\">rieckpil.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.tomitribe.com\/blog\/using-the-tomee-maven-plugin\/\"><strong>&gt;&gt; Using the TomEE Maven Plugin<\/strong><\/a> [<span style=\"color: #800000;\">tomitribe.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.vojtechruzicka.com\/javafx-spring-boot\/\"><strong>&gt;&gt; JavaFX Weaver: Integration of JavaFX and Spring Boot applications<\/strong><\/a> [<span style=\"color: #800000;\">vojtechruzicka.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<p><strong>Webinars and presentations:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/11\/15\/a-bootiful-podcast-redhat-ibm-s-s-bastien-blanc-on-oauth-keycloak-the-french-riviera-and-more\"><strong>&gt;&gt; A Bootiful Podcast: RedHat \/ IBM&#8217;s S\u00e9bastien Blanc on OAuth, KeyCloak, the French riviera, and more<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.youtube.com\/watch?v=J6fegDQPgps\"><strong>&gt;&gt; Java Language Futures: Late 2019 Edition by Brian Goetz<\/strong><\/a> [<span style=\"color: #800000;\">youtube.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.youtube.com\/watch?v=iwSCtxMbBLI\"><strong>&gt;&gt; Beyond ByteBuffers by Brian Goetz<\/strong><\/a> [<span style=\"color: #800000;\">youtube.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.youtube.com\/watch?v=FUv2sdNO_9o&#038;t=3s\"><strong>&gt;&gt; Nicolas Frankel &#8211; 3 easy performance improvements in your microservices architecture<\/strong><\/a> [<span style=\"color: #800000;\">youtube.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.youtube.com\/watch?v=c755fFv1Rnk\"><strong>&gt;&gt; Memory footprint of a Java process by Andrei Pangin<\/strong><\/a> [<span style=\"color: #800000;\">youtube.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.youtube.com\/watch?v=GGahNwIkAeA&#038;t=3s\"><strong>&gt;&gt; Miro Cupak &#8211; The Good, the Bad and the Ugly of Java API design<\/strong><\/a> [<span style=\"color: #800000;\">youtube.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.youtube.com\/watch?v=PpqNMhe4Bd0\"><strong>&gt;&gt; 10 Excellent Ways to Secure Your Spring Boot Application by Brian Vermeer &#038; Matt Raible<\/strong><\/a> [<span style=\"color: #800000;\">youtube.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.youtube.com\/watch?v=-fd_0EGujM0\"><strong>&gt;&gt; Vlad Mihalcea &#8211; Awesome SQL \u2013 tips and tricks for application developers<\/strong><\/a> [<span style=\"color: #800000;\">youtube.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<p><strong>Time to upgrade:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/11\/14\/spring-security-oauth-2-4-0-2-3-8-released\"><strong>&gt;&gt; Spring Security OAuth 2.4.0, 2.3.8 Released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/11\/18\/spring-data-moore-sr2-and-lovelace-sr13-available\"><strong>&gt;&gt; Spring Data Moore SR2 and Lovelace SR13 available<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/11\/14\/spring-cloud-open-service-broker-3-1-0-rc1-released\"><strong>&gt;&gt; Spring Cloud Open Service Broker 3.1.0.RC1 Released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/11\/12\/spring-cloud-hoxton-rc2-released\"><strong>&gt;&gt; Spring Cloud Hoxton.RC2 Released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"technical-and-musings\"><strong>2. Technical and Musings<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"technical-and-musings\"><\/div>\n<h4><a href=\"https:\/\/martinfowler.com\/bliki\/WaterfallProcess.html\"><strong>&gt;&gt;WaterfallProcess<\/strong><\/a> [<span style=\"color: #800000;\">martinfowler.com<\/span>]<\/h4>\n<p>A review of the Waterfall process, which relies on <strong>predictive planning, in contrast to agile&#8217;s adaptive planning paradigm<\/strong>.<\/p>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/11\/message-pact-contract-testing-in-event-driven-applications\/\"><strong>&gt;&gt; Message Pact \u2013 Contract testing in event-driven applications<\/strong><\/a> [<span style=\"color: #800000;\">blog.codecentric.de<\/span>]<\/h4>\n<p>And a quick look at using Pact to <strong>test asynchronous, message-driven applications<\/strong>.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/martinfowler.com\/bliki\/ExploratoryTesting.html\"><strong>&gt;&gt; ExploratoryTesting<\/strong><\/a> [<span style=\"color: #800000;\">martinfowler.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/medium.com\/netflix-techblog\/page-simulator-fa02069fb269\"><strong>&gt;&gt; Page Simulation for Better Offline Metrics at Netflix<\/strong><\/a> [<span style=\"color: #800000;\">medium.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.vojtechruzicka.com\/commitlint\/\"><strong>&gt;&gt; Commitlint: validate your commit conventions automatically<\/strong><\/a> [<span style=\"color: #800000;\">vojtechruzicka.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.jooq.org\/2019\/11\/13\/stop-mapping-stuff-in-your-middleware-use-sqls-xml-or-json-operators-instead\/\"><strong>&gt;&gt; Stop Mapping Stuff in Your Middleware. Use SQL\u2019s XML or JSON Operators Instead<\/strong><\/a> [<span style=\"color: #800000;\">blog.jooq.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/advancedweb.hu\/2019\/11\/12\/cors_star\/\"><strong>&gt;&gt; Is Access-Control-Allow-Origin: * insecure?<\/strong><\/a> [<span style=\"color: #800000;\">advancedweb.hu<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/blog.frankel.ch\/composition-over-inheritance-applied-docker\/\">&gt;&gt; Composition over inheritance applied to Docker<\/a>\u00a0<\/strong>[<span style=\"color: #800000;\">blog.frankel.ch<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/11\/emergent-leadership\/\"><strong>&gt;&gt; Emergent leadership<\/strong><\/a> [<span style=\"color: #800000;\">blog.codecentric.de<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"comics\"><strong>3. Comics<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"comics\"><\/div>\n<p>And my favorite Dilberts of the week:<\/p>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2019-11-15\"><strong>&gt;&gt; Stay Home When Sick<\/strong><\/a> [<span style=\"color: #800000;\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2019-11-18\"><strong>&gt;&gt; Boss Helps<\/strong><\/a> [<span style=\"color: #800000;\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2019-11-19\"><strong>&gt;&gt; Meeting To Decide When To Meet<\/strong><\/a> [<span style=\"color: #800000;\">dilbert.com<\/span>]<\/h4>\n<h2 data-id=\"pick-of-the-week\"><strong>4. Pick of the Week<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"pick-of-the-week\"><\/div>\n<h4><strong><a href=\"https:\/\/medium.com\/better-programming\/here-are-11-console-commands-every-developer-should-know-54e348ef22fa\">&gt;&gt; Here Are 11 Console Commands Every Developer Should Know<\/a> <\/strong>[<span style=\"color: #993300;\">medium.com<\/span>]<\/h4>\n","protected":false},"excerpt":{"rendered":"<p>The Spring Security OAuth story is continuing, a new JVM TI agent that can detect an unhealthy JVM, plus an overview of Java versions, features, and distributions.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-308\" title=\"Java Weekly, Issue 308\">&gt;&gt;&gt;<\/a> <a href=\"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/11\/18\/java-weekly-issue-308\/\">\u95b1\u8b80\u5168\u6587 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"slim_seo":[],"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[2,315,2149,7],"tags":[398,402,397,414,413,410,409,407,408,11,406,399,400,394,318,375,558,560,555,561,553,554,562,524,10,401,396,381,403,412,411,395,405,404,457,454,316],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p7prtj-Kbq","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/177532"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/comments?post=177532"}],"version-history":[{"count":12,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/177532\/revisions"}],"predecessor-version":[{"id":215114,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/177532\/revisions\/215114"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/media?parent=177532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/categories?post=177532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/tags?post=177532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}