{"id":166164,"date":"2019-10-04T16:38:22","date_gmt":"2019-10-04T08:38:22","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=60694"},"modified":"2019-10-04T16:38:22","modified_gmt":"2019-10-04T08:38:22","slug":"java-weekly-issue-301","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/10\/04\/java-weekly-issue-301\/","title":{"rendered":"Java Weekly, Issue 301"},"content":{"rendered":"<h2><strong>1. Spring and Java<\/strong><\/h2>\n<h4><strong><a href=\"https:\/\/www.vojtechruzicka.com\/spring-boot-add-war-to-embedded-tomcat\/\"  rel=\"noopener noreferrer\">&gt;&gt; How to deploy war files to Spring Boot Embedded Tomcat<\/a><\/strong> [<span style=\"color: #993300;\">vojtechruzicka.com<\/span>]<\/h4>\n<p>A couple of solutions \u2014 one for Spring Boot 2.x and one for 1.x.<\/p>\n<h4><strong><a href=\"https:\/\/www.nurkiewicz.com\/2019\/10\/graphql-server-in-java-part-i-basics.html\"  rel=\"noopener noreferrer\">&gt;&gt; GraphQL server in Java: Part I: Basics<\/a><\/strong> [<span style=\"color: #993300;\">nurkiewicz.com<\/span>]<\/h4>\n<p>An interesting new series begins by looking at the basics of GraphQL and a na\u00efve solution in Java.<\/p>\n<h4><a href=\"https:\/\/www.javaspecialists.eu\/archive\/Issue273.html\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Truly Public Methods<\/strong><\/a> [<span style=\"color: #993300;\">javaspecialists.eu<\/span>]<\/h4>\n<p>And as surprising as it might seem, <strong>not all public methods are accessible using reflection<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/news\/2019\/09\/adoptopenjdk-quality\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; AdoptOpenJDK Introduces Quality Assurance Program<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/reflectoring.io\/java-immutables\/\"  rel=\"noopener noreferrer\">&gt;&gt; Why Immutables Are the Better Objects and How to Implement Them<\/a><\/strong> [<span style=\"color: #993300;\">reflectoring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/blog.jooq.org\/2019\/09\/30\/a-quick-trick-to-make-a-java-stream-construction-lazy\/\"  rel=\"noopener noreferrer\">&gt;&gt; A Quick Trick to Make a Java Stream Construction Lazy<\/a><\/strong> [<span style=\"color: #993300;\">blog.jooq.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/rieckpil.de\/whatis-json-processing-json-p\/\"  rel=\"noopener noreferrer\">&gt;&gt; JSON Processing (JSON-P)<\/a><\/strong> [<span style=\"color: #993300;\">rieckpil.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/thoughts-on-java.org\/6-hibernate-mappings-you-should-avoid-for-high-performance-applications\/\"  rel=\"noopener noreferrer\">&gt;&gt; 6 Hibernate Mappings You Should Avoid for High-Performance Applications<\/a><\/strong> [<span style=\"color: #993300;\">thoughts-on-java.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/blog.frankel.ch\/hibernate-query-by-example\/\"  rel=\"noopener noreferrer\">&gt;&gt; Hibernate&#8217;s Query-By-Example<\/a><\/strong> [<span style=\"color: #993300;\">blog.frankel.ch<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h4><strong>Webinars and presentations:<\/strong><\/h4>\n<ul>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/09\/27\/a-bootiful-podcast-java-champion-and-jetbrains-developer-advocate-mala-gupta\"  rel=\"noopener noreferrer\">&gt;&gt; A Bootiful Podcast: Java Champion and Jetbrains Developer Advocate Mala Gupta<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/opa-spring-boot-hocon\/\"  rel=\"noopener noreferrer\">&gt;&gt; A Bootiful Podcast: Beyond Entitlements for Cloud-native<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/09\/tackling-climate-change-with-machine-learning-farms-forests\/\"  rel=\"noopener noreferrer\">&gt;&gt; Tackling climate change with machine learning [part 4] \u2013 Farms &#038; Forests<\/a><\/strong> [<span style=\"color: #993300;\">blog.codecentric.de<\/span>] and\u00a0<strong><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/09\/tackling-climate-change-with-machine-learning-industry-carbon-dioxide-removal\/\"  rel=\"noopener noreferrer\">[part 5]<\/a> and\u00a0<\/strong><strong><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/09\/tackling-climate-change-with-machine-learning-datasets-further-resources\/\"  rel=\"noopener noreferrer\">[part 6]<\/a><\/strong><\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/daedtech.com\/reader-question-round-up-niches-being-consultative-and-career-plays\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Reader Question Round-Up: Niches, Being Consultative, and Career Plays<\/strong><\/a> [<span style=\"color: #993300;\">daedtech.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h4><strong>Time to upgrade (all Spring):<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/09\/30\/spring-framework-5-2-goes-ga\"  rel=\"noopener noreferrer\"><strong>&gt;&gt;Spring Framework 5.2 goes GA<\/strong><\/a> and <a href=\"https:\/\/spring.io\/blog\/2019\/09\/28\/spring-framework-5-1-10-available-now\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Spring Framework 5.1.10 available now<\/strong><\/a> [<span style=\"color: #993300;\">spring.io<\/span>] [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/10\/02\/spring-boot-2-1-9-available-now\"  rel=\"noopener noreferrer\">&gt;&gt; Spring Boot 2.1.9 available now<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/10\/01\/spring-security-5-2-goes-ga\"  rel=\"noopener noreferrer\">&gt;&gt; Spring Security 5.2 goes GA<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/10\/01\/spring-data-moore-goes-ga\"  rel=\"noopener noreferrer\">&gt;&gt; Spring Data Moore goes GA<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>] and\u00a0<strong><a href=\"https:\/\/spring.io\/blog\/2019\/09\/30\/spring-data-lovelace-sr11-released\"  rel=\"noopener noreferrer\">&gt;&gt; Spring Data Lovelace SR11 released<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/10\/02\/spring-integration-5-2-ga-available\"  rel=\"noopener noreferrer\">&gt;&gt; Spring Integration 5.2 GA Available<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/09\/30\/spring-rest-docs-2-0-4-release\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Spring REST Docs 2.0.4.RELEASE<\/strong><\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/09\/30\/spring-hateoas-1-0-0-release-is-released\"  rel=\"noopener noreferrer\">&gt;&gt; Spring HATEOAS 1.0.0.RELEASE is released!<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2><strong>2. Technical and Musing<\/strong><\/h2>\n<h4><strong><a href=\"https:\/\/blog.sebastian-daschner.com\/entries\/thoughts-on-efficient-testing-integration\"  rel=\"noopener noreferrer\">&gt;&gt; Efficient enterprise testing \u2014 integration tests (3\/6)<\/a><\/strong> and\u00a0<strong><a href=\"https:\/\/blog.sebastian-daschner.com\/entries\/thoughts-on-efficient-testing-workflows\"  rel=\"noopener noreferrer\">&gt;&gt; workflows &#038; code quality (4\/6)<\/a><\/strong> and\u00a0<strong><a href=\"https:\/\/blog.sebastian-daschner.com\/entries\/thoughts-on-efficient-testing-frameworks\"  rel=\"noopener noreferrer\">&gt;&gt; test frameworks (5\/6)<\/a><\/strong> [<span style=\"color: #993300;\">blog.sebastian-daschner.com<\/span>]<\/h4>\n<p>As the series begins to wind down, a few thoughts on <strong>code-level and system-level integration tests<\/strong> and more.<\/p>\n<h4><strong><a href=\"https:\/\/henrikwarne.com\/2019\/09\/29\/when-tdd-is-not-a-good-fit\/\"  rel=\"noopener noreferrer\">&gt;&gt; When TDD Is Not a Good Fit<\/a><\/strong> [<span style=\"color: #993300;\">henrikwarne.com<\/span>]<\/h4>\n<p>And although <strong>TDD purists may disagree<\/strong>, the author makes a case for certain situations where TDD can actually slow progress.<\/p>\n<p>&nbsp;<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/www.troyhunt.com\/banks-arbitrary-password-restrictions-and-why-they-dont-matter\/\"><strong>&gt;&gt; Banks, Arbitrary Password Restrictions and Why They Don&#8217;t Matter<\/strong><\/a> [<span style=\"color: #993300;\">troyhunt.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/words.steveklabnik.com\/porting-steveklabnik-com-to-workers-sites-and-zola\"  rel=\"noopener noreferrer\">&gt;&gt; Porting steveklabnik.com to Workers Sites and Zola<\/a><\/strong> [<span style=\"color: #993300;\">words.steveklabnik.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/advancedweb.hu\/2019\/10\/01\/lambda_edge_terraform\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; How to use Lambda@Edge with Terraform<\/strong><\/a> [<span style=\"color: #993300;\">advancedweb.hu<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2><strong>3. Comics<\/strong><\/h2>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2019-09-29\"  rel=\"noopener noreferrer\">&gt;&gt; Boss Recommends Blockchain<\/a><\/strong> [<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2019-10-02\"  rel=\"noopener noreferrer\">&gt;&gt; Parody Inversion Point<\/a><\/strong> [<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2001-01-03\"  rel=\"noopener noreferrer\">&gt;&gt; Topper<\/a><\/strong> [<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h2><strong>4. Pick of the Week<\/strong><\/h2>\n<p>I&#8217;ll pick DataDog this week, as they&#8217;ve been firing on all cylinders lately:<\/p>\n<h4><strong><a href=\"https:\/\/www.baeldung.com\/datadog\">&gt;&gt; Use DataDog to monitor and troubleshoot your Java web applications <\/a><\/strong>\u00a0<\/h4>\n<p>Simply put &#8211; a really solid and mature end-to-end way to monitor your application, with full support for pretty much anything Java.<\/p>\n<p><strong><a href=\"https:\/\/www.baeldung.com\/datadog\">You can use their trial here<\/a>.<\/strong><\/p>\n<p><span style=\"font-weight: 400;\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A host of major new releases for Spring, a cool new series on using GraphQL in Java and Datadog is back.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-301\" title=\"Java Weekly, Issue 301\">&gt;&gt;&gt;<\/a> <a href=\"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/10\/04\/java-weekly-issue-301\/\">\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":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[2,315,3665,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-He4","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/166164"}],"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=166164"}],"version-history":[{"count":12,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/166164\/revisions"}],"predecessor-version":[{"id":187291,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/166164\/revisions\/187291"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/media?parent=166164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/categories?post=166164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/tags?post=166164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}