Lots of interesting writeups on Java 9 this week.
Here we go…
1. Spring and Java
The introduction of lambda expressions and functional interfaces allows us to rethink the design and simplify the Strategy Design Pattern (and many other).
>> Spring Boot and Security Events with Actuator [codeleak.pl]
Spring Boot Actuator comes with user-friendly support for handling audit and security events.
Simply put, all we need to do is to define a listener for the predefined events.
>> Project Amber will revolutionize Java [sitepoint.com]
A lot of new changes are finally coming to Java. These include Local Variable Type Inference, Generic Enums, Data Classes and Pattern Matching.
“We’ve had those in other languages ten years ago” posts are coming.
>> Fully configurable mappings for Spring MVC [frankel.ch]
With a little bit of effort, we can bring the features of Boot Actuators to non-Boot applications as well.
>> Spring Data Improvements in IntelliJ IDEA 2017.1 [jetbrains.com]
IntelliJ IDEA is getting, even more, Spring-oriented features.
The pragmatic approach to the Open-Closed Principle does not involve aiming for openness at any costs.
>> JDK 9 Rampdown Phase 2: Process proposal [mail.openjdk.java.net]
The 2nd phase of JDK 9 rampdown just started.
>> Better tools for adjusting to strong encapsulation [mail.openjdk.java.net]
The internal APIs in the JDK should not have been used but they were by multiple frameworks which are experiencing errors now.
JDK 9 will feature a special workaround for these situations.
Also worth reading:
>> Hibernate Tips: How to use Hibernate’s native bootstrapping API [thoughts-on-java.org]
>> Java 9 new Features: Reactive Streams [aboullaite.me]
>>Spring Web-Flux – First steps [java-allandsundry.com]
>> How to find which statement failed in a JDBC Batch Update [vladmihalcea.com]
Webinars and presentations:
Time to upgrade:
>> Spring Cloud Stream Chelsea.RC1 released [spring.io]
>> Ninth bug-fix release for ORM 5.2 [in.relation.to]
>> Support for Java 9 Modules in IntelliJ IDEA 2017.1 [jetbrains.com]
>> Spring Vault 1.0 RC1 is now available [spring.io]
>> Spring Cloud Dalston RC1 Released [spring.io]
>> Spring Cloud Task 1.2.0.M2 is now available [spring.io]
>> The State of Browser Caching, Revisited [mnot.net]
An interesting write-up on the basics of browser caching.
>> Acing the technical interview [aphyr.com]
That’s how you make interviewers hate you 🙂
>> Taking a Pragmatic View of Isolated Tests [thecodewhisperer.com]
Writing isolated tests can greatly influence the design of your system by exposing excessive coupling and insufficient cohesion.
>> “Infinity” is a Bad Default Timeout [techblog.bozho.net]
Yeah, setting your timeouts to infinity or ignoring them is very likely not a good idea.
>> Don’t forget about value objects! [plainoldobjects.com]
Value Objects are a great way of dealing with the String type abuse. Working in a strongly typed language, it makes a lot of sense to leverage these.
Also worth reading:
>> More troubles with test data [ontestautomation.com]
>> Distributing Election Volunteers In Polling Stations [techblog.bozho.net]
>> Project Amber: Smaller, Productivity-Oriented Java Language Features [marxsoftware.blogspot.com]
>> Stealing Messenger.com Login Nonces [stephensclafani.com]
>> The product Is – Is not – Does – Does not [martinfowler.com]
Sometimes it’s easier to explore and explain an idea by first clarifying what it’s not 🙂
>> Does software performance still matter? [lemire.me]
Software performance is critical and should not be neglected, but at the end of the day, it is the absolute value of the code that counts.
>> Don’t Just Flag It — Fix It! [daedtech.com]
Information about problems, without an actual solution – it is not a good way to go.
Also worth reading:
>> Is Dr. Calvin in the Room? [cleancoder.com]
>> Turning Tech Hobbies into Side Hustle [daedtech.com]
>> Let the Okta and Devoxx Journeys Begin! [raibledesigns.com]
And my favorite Dilberts of the week: