Here we go…

1. Spring and Java

>> Optimistic locking in JPA/Hibernate [blog.arnoldgalovics.com]

A good review of lost update anomalies and how to detect them using versioned and non-versioned optimistic database locks.

>> Bootiful GCP: Relational Data Access with Spring Cloud GCP (2/8) [spring.io]

In this installment in the series on Spring Boot and the Google Cloud Platform, we see how easy it is to connect to a managed MySQL database and perform some basic queries.

>> Bootiful GCP: Globally Consistent Data Access with Spanner (3/8) [spring.io]

And for an encore, this tutorial walks us through integrating to Google Spanner using Spring Data. Very cool.

>> Hibernate Tips: Map 1 Entity Attribute to 2 Columns [thoughts-on-java.org]

A nice write-up gives us a way to solve a problem commonly seen in legacy database code by using a transient property and two internal attributes.

>> Hibernate database schema multitenancy [vladmihalcea.com]

In this follow-up to last week’s piece on catalog-based multitenancy, we see how schema-based multitenancy is suitable for databases that drive a clear distinction between a catalog and schema, such as PostgreSQL.

>> Build a MySQL Spring Boot App Running on WildFly on an Azure VM [infoq.com]

A good tutorial on creating a MySQL server using Azure Database for MySQL and connecting to it from a Wildfly-based Spring Boot app. Good stuff.

>> Java is still available at zero-cost [blog.joda.org]

Despite the rumors, Java is still free, but be prepared to shell out big bucks if you insist on remaining on older versions and still rely on Oracle for support.

>> Migrate Maven Projects to Java 11 [winterbe.com]

A solid resource if you simply want to run your applications on JDK 11 but don’t care about the new Jigsaw module system.

Also worth reading:

Time to upgrade:

2. Technical and Musings

>> How to extract a data-rich service from a monolith [martinfowler.com]

Another promising series – this installment prescribes a pattern for this task as a series of steps aimed at minimizing disruptions to service consumers. A great approach.

>> Back to basics: Dependency Injection [blog.frankel.ch]

A quick refresher course touts the merits of DI, even as many are questioning its value due to misinformation.

>> Why certificate pinning with HPKP is a bad idea [advancedweb.hu]

A study of HTTP Public Key Pinning — it may sound good at first but comes with unacceptable risks. Steer clear.

>> Orange Code [michaelfeathers.silvrback.com]

An insightful analogy compares — wait for it — apples to oranges, where the apples are monolithic methods, and the oranges are their carefully crafted equivalents, achieved through method extraction.

>> The State of Agile Software in 2018 [martinfowler.com]

A thoughtful write-up outlines some of the challenges that Agile must overcome, such as “faux agile” and the “Agile Industrial Complex”.

>> Transmuting Low-Value Programmer Cred into High-Value Status lllegibility [daedtech.com]

A fascinating look into the dynamics that influence programmer hiring practices.

Also worth reading:

3. Comics

And my favorite Dilberts of the week:

>> Time Management According to Dogbert [dilbert.com]

>> Wally as a Mentor [dilbert.com]

>> We Like Databases [dilbert.com]

4. Pick of the Week

This week I’ve finally announced the new stuff that’s coming down the pike in my REST With Spring course – all related to Spring Boot 2 and Spring 5.1 (along with the upcoming price change):

>> The upcoming new modules in REST With Spring