{"id":210387,"date":"2020-01-17T14:46:21","date_gmt":"2020-01-17T06:46:21","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=70077"},"modified":"2020-01-17T14:46:21","modified_gmt":"2020-01-17T06:46:21","slug":"java-weekly-issue-316","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2020\/01\/17\/java-weekly-issue-316\/","title":{"rendered":"Java Weekly, Issue 316"},"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\/kotlin-coroutines-bottom-up\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; A Bottom-Up View of Kotlin Coroutines<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<p>A peek under-the-hood at coroutines \u2013 a feature not natively supported by the JVM \u2013 and how they work in Kotlin.<\/p>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2020\/01\/rfc-7807-problem-details-with-spring-boot-and-jax-rs\/\"><strong>&gt;&gt; RFC-7807 problem details with Spring Boot and JAX-RS<\/strong><\/a> [<span style=\"color: #800000\">blog.codecentric.de<\/span>]<\/h4>\n<p>A great overview of this IETF standard for <strong>communicating problems and errors to API clients<\/strong>.<\/p>\n<h4><a href=\"https:\/\/thoughts-on-java.org\/key-jpa-hibernate-annotations\/\"><strong>&gt;&gt; Key annotations you need to know when working with JPA and Hibernate<\/strong><\/a> [<span style=\"color: #800000\">thoughts-on-java.org<\/span>]<\/h4>\n<p>An excellent primer for newbies, and a nice review for the more experienced JPA connoisseur.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/news\/2020\/01\/deep-java-library\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Deep Java Library: New Deep Learning Toolkit for Java Developers<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/amber-spec-experts\/2020-January\/001904.html\"><strong>&gt;&gt; Towards cleaner nesting<\/strong><\/a> [<span style=\"color: #800000\">mail.openjdk.java.net<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/advancedweb.hu\/using-external-libraries-in-jshell\/\"><strong>&gt;&gt; Using external libraries in JShell<\/strong><\/a> [<span style=\"color: #800000\">advancedweb.hu<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/vladmihalcea.com\/hibernate-resulttransformer\/\"><strong>&gt;&gt; The best way to use a Hibernate ResultTransformer<\/strong><\/a> [<span style=\"color: #800000\">vladmihalcea.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/alidg.me\/blog\/2020\/1\/11\/lock-striping\"><strong>&gt;&gt; Lock Striping<\/strong><\/a> [<span style=\"color: #800000\">alidg.me<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/vanwilgenburg.wordpress.com\/2020\/01\/09\/connectableflux-with-elasticsearch\/\"><strong>&gt;&gt; Using a ConnectableFlux to do background batching on elasticsearch<\/strong><\/a> [<span style=\"color: #800000\">vanwilgenburg.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\/2020\/01\/10\/a-bootiful-podcast-pivotal-labs-sydney-director-david-julia\"><strong>&gt;&gt; A Bootiful Podcast: Pivotal Labs Sydney director David Julia<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/java-deployment-features\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Keeping Up with Java: Look at All These New Features!<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/kotlin-spring-boot\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Write Less Code with Kotlin and Spring Boot<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/spring-hateoas-1\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Spring HATEOAS: Hypermedia APIs with<\/strong> Spring<\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/spinnaker-spring\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Cutting-edge Continuous Delivery: Automated Canary Analysis Through Spring-based Spinnaker<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.sebastian-daschner.com\/entries\/efficient-testing-video-course\"><strong>&gt;&gt; Video course on efficient enterprise testing<\/strong><\/a> [<span style=\"color: #800000\">blog.sebastian-daschner.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\/08\/spring-security-5-3-0-m1-released\"><strong>&gt;&gt; Spring Security 5.3.0.M1 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\/10\/spring-integration-aws-2-3-1-spring-cloud-stream-kinesis-binder-2-0-1-available\"><strong>&gt;&gt; Spring Integration AWS 2.3.1 &#038; Spring Cloud Stream Kinesis Binder 2.0.1 Available<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/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:\/\/advancedweb.hu\/how-to-solve-cors-problems-when-redirecting-to-s3-signed-urls\/\"><strong>&gt;&gt; How to solve CORS problems when redirecting to S3 signed URLs<\/strong><\/a> [<span style=\"color: #800000\">advancedweb.hu<\/span>]<\/h4>\n<p>A guide to the headers and HTTP status codes to use in this scenario.<\/p>\n<h4><a href=\"https:\/\/blog.christianposta.com\/microservices\/istio-as-an-example-of-when-not-to-do-microservices\/\"><strong>&gt;&gt; Istio as an Example of When Not to Do Microservices<\/strong><\/a> [<span style=\"color: #800000\">blog.christianposta.com<\/span>]<\/h4>\n<p>A case study of a failed microservices architecture \u2014 and <strong>why a monolith was ultimately the better solution<\/strong>.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/blog.scottlogic.com\/2020\/01\/09\/git-rebasing.html\"><strong>&gt;&gt; Git rebasing: What is it and how can you use it?<\/strong><\/a> [<span style=\"color: #800000\">blog.scottlogic.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.frankel.ch\/inserting-new-commit-git-history\/\"><strong>&gt;&gt; Inserting a new commit in the Git history<\/strong><\/a> [<span style=\"color: #800000\">blog.frankel.ch<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"http:\/\/blog.code-cop.org\/2020\/01\/graphml-charting-module-dependencies.html\"><strong>&gt;&gt; Visualising Architecture: GraphML Charting Module Dependencies<\/strong><\/a> [<span style=\"color: #800000\">abdullin.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:\/\/techblog.bozho.net\/solving-problems-properly-is-often-not-viable\/\">&gt;&gt; Solving Problems Properly Is Often Not Viable<\/a><\/strong> [<span style=\"color: #800000\">techblog.bozho.net<\/span>]<\/h4>\n<p>An interesting look at the market forces that preclude rewrites of poorly-designed systems.<\/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\"><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<\/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\/2020-01-09\">&gt;&gt; Mind Reading<\/a><\/strong> [<span style=\"color: #800000\">dilbert.com<\/span>]<\/h4>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2020-01-11\">&gt;&gt; Old Strategy<\/a><\/strong> [<span style=\"color: #800000\">dilbert.com<\/span>]<\/h4>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2020-01-13\">&gt;&gt; Smarter Than An Engineer<\/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<h4><strong><a href=\"https:\/\/randsinrepose.com\/archives\/one-thing\/\">&gt;&gt; One Thing<\/a> <\/strong>[<span style=\"color: #993300\">randsinrepose.com<\/span>]<\/h4>\n<p><span style=\"font-weight: 400\"><\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A deep dive into coroutines in Kotlin, and a guide to the RFC-7807 standard for communicating API problems to client applications.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-316\" title=\"Java Weekly, Issue 316\">&gt;&gt;&gt;<\/a> <a href=\"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2020\/01\/17\/java-weekly-issue-316\/\">\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-SJl","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/210387"}],"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=210387"}],"version-history":[{"count":3,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/210387\/revisions"}],"predecessor-version":[{"id":215105,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/210387\/revisions\/215105"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/media?parent=210387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/categories?post=210387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/tags?post=210387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}