{"id":212678,"date":"2020-01-24T16:34:14","date_gmt":"2020-01-24T08:34:14","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=70465"},"modified":"2020-01-24T16:34:14","modified_gmt":"2020-01-24T08:34:14","slug":"java-weekly-issue-317","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2020\/01\/24\/java-weekly-issue-317\/","title":{"rendered":"Java Weekly, Issue 317"},"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\/2020\/01\/14\/reactive-bookstore-service-broker\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Reactive BookStore Service Broker<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<p>A quick example demonstrating <strong>the Reactive API support available in several Spring projects<\/strong>. Very cool.<\/p>\n<h4><a href=\"https:\/\/www.infoq.com\/articles\/groovy-3-new-features-java\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Groovy 3.0 Adds New Java-Like Features<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/h4>\n<p>Some of the highlights include <strong>lambda expressions, try-with-resources, and an enhanced for-loop<\/strong>.<\/p>\n<h4><a href=\"https:\/\/www.morling.dev\/blog\/enforcing-java-record-invariants-with-bean-validation\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Enforcing Java Record Invariants With Bean Validation<\/strong><\/a> [<span style=\"color: #800000;\">morling.dev<\/span>]<\/h4>\n<p>And an experiment with <strong>the Java 14 Records preview feature and Byte Buddy<\/strong>.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/records-come-to-java\"  rel=\"noopener noreferrer\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Records Come to Java<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">blogs.oracle.com<\/span>]<\/span><\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/thoughts-on-java.org\/naming-strategies-in-hibernate-5\/\"  rel=\"noopener noreferrer\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Naming Strategies in Hibernate 5<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">thoughts-on-java.org<\/span>]<\/span><\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/eclipse-ee4j.github.io\/jakartaee-platform\/jakartaee9\/JakartaEE9ReleasePlan\"  rel=\"noopener noreferrer\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Jakarta EE 9 Release Plan<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">eclipse-ee4j.github.io<\/span>]<\/span><\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.tomitribe.com\/blog\/servlets-and-tomcat-23-years-and-counting\/\"  rel=\"noopener noreferrer\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Servlets and Tomcat: 23+ Years and Counting<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">tomitribe.com<\/span>]<\/span><\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/vladmihalcea.com\/multidimensional-array-jpa-hibernate\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Multidimensional array mapping with JPA and Hibernate<\/strong><\/a> [<span style=\"color: #800000;\">vladmihalcea.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.frankel.ch\/creative-use-filters\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; A creative use of Filters<\/strong><\/a> [<span style=\"color: #800000;\">blog.frankel.ch<\/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\/2020\/01\/17\/a-bootiful-podcast-spring-cloud-services-bella-yuxin-bai\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; A Bootiful Podcast: Spring Cloud Services&#8217; Bella (Yuxin) Bai<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/learn-spring-boot\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Learning Spring Boot: First as a Student, Then as a Teacher<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/junit-5-new\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; JUnit 5: Evolution and Innovation<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/rieckpil.de\/jakarta-ee-crud-api-tutorial\/\"  rel=\"noopener noreferrer\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Jakarta EE 8 CRUD API Tutorial using Java 11<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">rieckpil.de<\/span>]<\/span><\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/project-reactor-demo\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Avoiding Reactor Meltdown<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/spinnaker-jpmorgan-chase\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"  rel=\"noopener noreferrer\">&gt;&gt; The Reality of Managing Microservice Deployments at Scale: You Need a Spinnaker<\/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\/2020\/01\/16\/spring-framework-5-2-3-5-1-13-5-0-16-and-4-3-26-releases\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Spring Framework 5.2.3, 5.1.13, 5.0.16, and 4.3.26 releases<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/01\/20\/spring-boot-2-2-4-released\"><strong>&gt;&gt; Spring Boot 2.2.4 released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>] and <a href=\"https:\/\/spring.io\/blog\/2020\/01\/16\/spring-boot-2-2-3-released\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Spring Boot 2.2.3 released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>] and\u00a0<a href=\"https:\/\/spring.io\/blog\/2020\/01\/16\/spring-boot-2-1-12-released\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Spring Boot 2.1.12 released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/01\/15\/spring-data-moore-sr4-and-lovelace-sr15-released\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Spring Data Moore SR4 and Lovelace SR15 released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/01\/17\/spring-vault-2-2-1-release-and-2-1-5-release-available\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Spring Vault 2.2.1.RELEASE and 2.1.5.RELEASE available<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/arjan-tijms.omnifaces.org\/2020\/01\/piranha-2012-released.html\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Piranha 20.1.2 released!<\/strong><\/a> [<span style=\"color: #800000;\">arjan-tijms.omnifaces.org<\/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><a href=\"https:\/\/techblog.bozho.net\/one-time-passwords-do-not-provide-non-repudiation\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; One-Time Passwords Do Not Provide Non-Repudiation<\/strong><\/a> [<span style=\"color: #800000;\">techblog.bozho.net<\/span>]<\/h4>\n<p>As secure hardware modules become the norm in smartphone tech, it may be time to say goodbye to the OTP.<\/p>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2020\/01\/aws-sagemaker-data-handling\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Seven ways of handling image and machine learning data with AWS SageMaker and S3<\/strong><\/a> [<span style=\"color: #800000;\">blog.codecentric.de<\/span>]<\/h4>\n<p>And some common approaches for preserving your ML data as you port your Jupyter notebooks to SageMaker.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"http:\/\/blog.code-cop.org\/2020\/01\/login-form-tdd-ui-kata.html\"><strong>&gt;&gt; Login Form TDD a UI Kata<\/strong><\/a> [<span style=\"color: #800000;\">blog.code-cop.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.scottlogic.com\/2020\/01\/16\/planning-56-sprints-per-second-with-sat4j.html\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Planning 56 sprints per second with SAT4J<\/strong><\/a> [<span style=\"color: #800000;\">blog.scottlogic.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/reflectoring.io\/flyway-kubernetes-continuous-database-configuration\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Continuous Database Configuration with Flyway and Kubernetes<\/strong><\/a> [<span style=\"color: #800000;\">reflectoring.io<\/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><a href=\"https:\/\/martinfowler.com\/articles\/on-pair-programming.html\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; On Pair Programming<\/strong><\/a> [<span style=\"color: #800000;\">martinfowler.com<\/span>]<\/h4>\n<p>A strong case for pair programming, along with some dos and don&#8217;ts to keep in mind when implementing it in your team.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/martinfowler.com\/articles\/programs-in-product-mode.html\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; How to manage a program in a product-mode organization<\/strong><\/a> [<span style=\"color: #800000;\">martinfowler.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/daedtech.com\/reader-question-round-up-corporate-culture-code-quality-and-counter-offers\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Reader Question Round-Up: Corporate Culture, Code Quality and Counter Offers<\/strong><\/a> [<span style=\"color: #800000;\">daedtech.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/henrikwarne.com\/2020\/01\/20\/more-good-programming-quotes-part-4\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; More Good Programming Quotes, Part 4<\/strong><\/a> [<span style=\"color: #800000;\">h<\/span><span style=\"color: #800000;\">enrikwarne.com<\/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><a href=\"https:\/\/dilbert.com\/strip\/2020-01-19\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Master Engineer<\/strong><\/a> [<span style=\"color: #800000;\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2020-01-18\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Poison Pill<\/strong><\/a> [<span style=\"color: #800000;\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2020-01-04\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Wally Stopped Trying<\/strong><\/a> [<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<h4><strong><a href=\"https:\/\/www.kalzumeus.com\/2009\/10\/04\/work-smarter-not-harder\/\">&gt;&gt; Work Less, Get More Done: Analytics For Maximizing Productivity<\/a> <\/strong>[<span style=\"color: #800000;\">kalzumeus.com<\/span>]<\/h4>\n","protected":false},"excerpt":{"rendered":"<p>An intro to the Reactive programming support in several high-profile Spring projects, and several new releases are out for Spring Boot and Core.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-317\" title=\"Java Weekly, Issue 317\">&gt;&gt;&gt;<\/a> <a href=\"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2020\/01\/24\/java-weekly-issue-317\/\">\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-Tki","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/212678"}],"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=212678"}],"version-history":[{"count":3,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/212678\/revisions"}],"predecessor-version":[{"id":215103,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/212678\/revisions\/215103"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/media?parent=212678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/categories?post=212678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/tags?post=212678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}