{"id":187278,"date":"2019-12-16T11:24:29","date_gmt":"2019-12-16T03:24:29","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=66772"},"modified":"2019-12-16T11:24:29","modified_gmt":"2019-12-16T03:24:29","slug":"java-weekly-issue-312","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/12\/16\/java-weekly-issue-312\/","title":{"rendered":"Java Weekly, Issue 312"},"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:\/\/www.infoq.com\/articles\/spring-cloud-hystrix\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; The Future of Spring Cloud&#8217;s Hystrix Project<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/h4>\n<p>A good overview of <strong>Resilience4j \u2014 the heir-apparent to Netflix Hystrix<\/strong>, which is in maintenance mode.<\/p>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/12\/13\/flight-of-the-flux-3-hopping-threads-and-schedulers\"><strong>&gt;&gt; Flight of the Flux 3 &#8211; Hopping Threads and Schedulers<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<p>A quick look at how <strong>Reactor&#8217;s <em>Scheduler<\/em> abstraction<\/strong> enables advanced control of threading.<\/p>\n<h4><a href=\"https:\/\/www.petrikainulainen.net\/programming\/testing\/the-best-way-to-configure-the-spring-mvc-test-framework-part-one\/\"><strong>&gt;&gt; The Best Way to Configure the Spring MVC Test Framework, Part One<\/strong><\/a> [<span style=\"color: #800000;\">petrikainulainen.net<\/span>]<\/h4>\n<p>And a comparison of three methods for configuring Spring MVC tests.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/techblog.bozho.net\/a-disk-backed-arraylist\/\"><strong>&gt;&gt; A Disk-backed Arraylist<\/strong><\/a> [<span style=\"color: #800000;\">techblog.bozho.net<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"http:\/\/marxsoftware.blogspot.com\/2019\/12\/jdk-14-rampdown-build-27.html\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; JDK 14 Rampdown: Build 27<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">marxsoftware.com<\/span>]<\/span><\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/vladmihalcea.com\/migrate-hilo-hibernate-pooled\/\">&gt;&gt; How to migrate the hilo Hibernate identifier optimizer to the pooled strategy<\/a><\/strong> [<span style=\"color: #800000;\">vladmihalcea.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.mscharhag.com\/java\/micrometer-application-metrics\">&gt;&gt; Collecting application metrics with Micrometer<\/a><\/strong> [<span style=\"color: #800000;\">mscharhag.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.frankel.ch\/even-more-readable-code-without-if-else\/\"><strong>&gt;&gt; Even more readable code without if-else<\/strong><\/a> [<span style=\"color: #800000;\">blog.frankel.ch<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.sebastian-daschner.com\/entries\/matching-patterns-with-java\"><strong>&gt;&gt; Matching patterns with Java<\/strong><\/a> [<span style=\"color: #800000;\">blog.sebastian-daschner.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<p><strong>Webinars and presentations:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/netflix-spring-cloud\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Presentation: How to Live in a Post\u2013Spring Cloud Netflix World<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/microservices-pivotal-eureka-prometheus-grafana\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Using Metrics to Ensure Quality Applications in Pivotal Platform<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/building-microservices-events-functions\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Monoliths, Microservices, Events, Functions: What It Takes to Go Through the Transformation<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/spring-reactor-microservices\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\">&gt;&gt; Presentation: Building Reactive Pipelines: How to Go from Scalable Apps to (Ridiculously) Scalable Systems<\/a><\/strong> [<span style=\"color: #800000;\">infoq.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\/12\/10\/spring-boot-2-1-x-eol-november-1st-2020\"><strong>&gt;&gt; Spring Boot 2.1.x EOL November 1st 2020<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/12\/12\/spring-boot-for-apache-geode-pivotal-gemfire-1-1-4-release-1-2-2-release-available\"><strong>&gt;&gt; Spring Boot for Apache Geode &#038; Pivotal GemFire 1.1.4.RELEASE &#038; 1.2.2.RELEASE Available<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/12\/12\/spring-session-for-apache-geode-pivotal-gemfire-2-1-7-release-and-2-2-1-release-available\"><strong>&gt;&gt; Spring Session for Apache Geode &#038; Pivotal GemFire 2.1.7.RELEASE and 2.2.1.RELEASE Available<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/news\/2019\/12\/red-hat-releases-wildfly-18\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; RedHat Releases WildFly 18 Featuring Support for Jakarta EE and MicroProfile<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"technical\"><strong>2. Technical<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"technical\"><\/div>\n<h4><strong><a href=\"https:\/\/medium.com\/netflix-techblog\/dblog-a-generic-change-data-capture-framework-69351fb9099b\">&gt;&gt; DBLog: A Generic Change-Data-Capture Framework<\/a><\/strong> [<span style=\"color: #800000;\">medium.com<\/span>]<\/h4>\n<p>An early look at DBLog, scheduled to be open-sourced in 2020, for <strong>keeping heterogeneous datastores in sync<\/strong>.<\/p>\n<h4><a href=\"https:\/\/vladmihalcea.com\/sql-cross-join\/\"><strong>&gt;&gt; A beginner\u2019s guide to SQL Cross Join<\/strong><\/a> [<span style=\"color: #800000;\">vladmihalcea.com<\/span>]<\/h4>\n<p>And an example of CROSS JOIN, the preferred way to <strong>generate a Cartesian product of two tables<\/strong>.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/dev.to\/frosnerd\/handwritten-digit-recognition-using-convolutional-neural-networks-11g0\"><strong>&gt;&gt; Handwritten Digit Recognition Using Convolutional Neural Networks<\/strong><\/a> [<span style=\"color: #800000;\">dev.to<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/advancedweb.hu\/how-to-deploy-a-single-page-application-with-terraform\/\">&gt;&gt; How to deploy a single-page application with Terraform<\/a><\/strong> [<span style=\"color: #800000;\">advancedweb.hu<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/12\/kong-api-gateway-declarative-configuration-using-deck-and-visualizations-with-konga\/\"><strong>&gt;&gt; Kong API Gateway \u2013 Declarative configuration using decK and visualizations with Konga<\/strong><\/a> [<span style=\"color: #800000;\">blog.codecentric.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.allthingsdistributed.com\/2019\/12\/power-of-relationships.html\"><strong>&gt;&gt; The power of relationships in data<\/strong><\/a> [<span style=\"color: #800000;\">allthingsdistributed.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"musings\"><strong>3. Musings<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"musings\"><\/div>\n<h4><strong><a href=\"https:\/\/daedtech.com\/coders-in-the-hands-of-a-missing-god-how-newly-minted-freelancers-badly-miss-the-point\/\">&gt;&gt; Coders in the Hands of a Missing God: How Newly Minted Freelancers Badly Miss the Point<\/a><\/strong> [<span style=\"color: #800000;\">daedtech.com<\/span>]<\/h4>\n<p>Practical advice for individual contributors making the shift to freelance work.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/blog.jbrains.ca\/permalink\/questions-and-answers-after-agile-tour-lithuania-2019\"><strong>&gt;&gt; Questions from &#8216;The Selfish Team Player&#8217; at Agile Tour Lithuania 2019<\/strong><\/a> [<span style=\"color: #800000;\">blog.jbrains.ca<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"comics\"><strong>4. Comics<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"comics\"><\/div>\n<p>And my favorite Dilberts of the week:<\/p>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2019-12-12\">&gt;&gt; Dogbert&#8217;s Tech Support<\/a><\/strong> [<span style=\"color: #800000;\">dilbert.com<\/span>]<\/h4>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2019-12-15\">&gt;&gt; Robot Pronouns<\/a><\/strong> [<span style=\"color: #800000;\">dilbert.com<\/span>]<\/h4>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2019-12-18\">&gt;&gt; Can&#8217;t Work From Home<\/a><\/strong> [<span style=\"color: #800000;\">dilbert.com<\/span>]<\/h4>\n<h2 data-id=\"pick-of-the-week\"><strong>5. Pick of the Week<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"pick-of-the-week\"><\/div>\n<p>Finally, as we almost wrap up 2019, an internal pick this week:<\/p>\n<h4><a href=\"https:\/\/www.youtube.com\/channel\/UClz8vOAb28UzP64meEvhg5w\"><strong>&gt;&gt; The Baeldung YouTube Channel<\/strong><\/a>\u00a0[<span style=\"color: #993300;\">youtube.com<\/span>]<\/h4>\n<p>I don&#8217;t release new videos super often, but the ones I do release are, hopefully, cool and helpful,\u00a0<strong>so definitely subscribe if YouTube is your thing<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An intro to Resilience4j, inspired by Hystrix, and a good presentation on surviving Spring Cloud&#8217;s migration away from the Netflix stack.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-312\" title=\"Java Weekly, Issue 312\">&gt;&gt;&gt;<\/a> <a href=\"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/12\/16\/java-weekly-issue-312\/\">\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-MIC","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/187278"}],"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=187278"}],"version-history":[{"count":8,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/187278\/revisions"}],"predecessor-version":[{"id":215110,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/187278\/revisions\/215110"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/media?parent=187278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/categories?post=187278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/tags?post=187278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}