Tales from the jar side: Spring Boot 3.1 released, Using Java preview features in Eclipse, Josh Long's bootiful [sic] podcast, a Tesla bumper sticker, and the usual Tweets and toots
Termite walks into a bar and says, "Where is the bar tender?" (rimshot)
Welcome, fellow jarheads, to Tales from the jar side, the Kousen IT newsletter, for the week of May 14 - May 21, 2023. This week I taught my Spring Data JPA course as a No Fluff, Just Stuff Virtual Workshop, and taught a private class on Latest Features in Java in San Francisco, which required me to fly across the country and back. Boy are my arms tired. (rimshot)
Regular readers of (and listeners to, and now video viewers of) this newsletter are affectionately known as jarheads, and are far more intelligent, sophisticated, and attractive than the average newsletter reader (or listener, or viewer). If you wish to become a jarhead, please subscribe using this button:
As a reminder, when this message is truncated in email, click on the title to open it in a browser tab formatted properly for both the web and mobile.
Spring Boot 3.1.0 Released
I haven’t talked about it, but I’m nearly finished updating the Spring and Spring Boot video course I provide on the O’Reilly Learning Platform. The upgrade became necessary when Spring Boot released version 3.0 (which includes the new Spring (core) 6.0), which changed a fair number of capabilities and added new ones.
I only have about half a module to go, so naturally the Spring team decided now is the time to upgrade to Spring Boot 3.1. I guess that’s better than updating just after I released my video course, which is what happened when I published Mockito Made Clear book, only to have the Mockito team release version 5.
Fortunately, the upgrade to Mockito 5 was a non-event. I updated the GitHub repository and everything still worked. The changes basically came down to:
Java 11 became the minimum supported Java version, and
The so-called inline mock maker became part of the mockito-core dependency.
As for the Spring Boot upgrade, I read through the release notes, and there are only two changes of note:
You can now use the Testcontainers project easily, and they have something called a “service connection” to make it easier to start.
They added a Docker compose module.
Oh, and of course they included Mockito version 5. :)
TBH, there are many other changes, but none that affected me or the courses I teach. I’ll figure out the others as I go along.
The Testcontainers part is a big deal. I’ve worked with that project many times before, and now it’s confirmed as the definitive way to do integration tests in Spring Boot applications. Not only that, but apparently now you can even use your containers in development mode at runtime, but I haven’t had a chance to check that out yet.
I did manage to get an example running using both a MySQL and a Postgres database. It helped (I think) that I have an online Testcontainers Cloud account, because that meant I could run both databases without installing them locally, even with docker.
Will that affect my course update? Maybe. I’d like to add something about it, but the course is already long. I don’t want to add much more to the runtime. Still, a single Testcontainers example might be a welcome addition.
I’ll be working on that, off and on, all week. I’m meeting with the O’Reilly people on Thursday, so I need to have a complete draft by then.
Using Java Preview Features in Eclipse
Way back in 2001, the Eclipse IDE was released. Up until then, the Java editor market was split between a few high-profile, very expensive options, like IBM’s VisualAge for Java or Borland’s JBuilder, and a bunch of small, shareware editors that all cost about $30 and did a few things well. I started teaching Java training courses in June of 2000, and we used to set up the classrooms with those cheap editors, which we uninstalled as soon as the class was over.
The release of Eclipse changed all that. The IDE came from the Eclipse consortium, which was a bunch of companies led by IBM, who dominated every conversation. Here’s an old logo, back from version 4.4 Luna:
The joke I didn’t realize until someone pointed it out was that the word Eclipse has a very definite relationship to the word Sun, as in Sun Microsystems, who ran Java at the time. IBM insists to this day that was a coincidence, to which I say, yeah, right. I know Sun didn’t like it. They most definitely did not join the consortium, and even released a competitor, called NetBeans, which never really caught on.
Eclipse was free and powerful. It put all the shareware editors out of business, and even hurt the market for the expensive IDEs as well. Within a couple of years, everybody in the industry was using it.
Software that doesn’t evolve, however, gets old and clunky over time. I used Eclipse as my primary IDE for about 10 years, before my friends finally convinced me to pay for a license for IntelliJ IDEA. IntelliJ has a learning curve, but it’s worth it. The clincher was when the Android people (which really meant Google, who manages Android) switched from ADT, their Android Developer Tools plugin to Eclipse, to their new product called Android Studio, based on IntelliJ. That’s when I finally made the switch, and I haven’t looked back. The only time I use Eclipse anymore is when a client insists on it.
The Eclipse IDE eventually was managed by the Eclipse Foundation, which hosts a variety of open source projects. The foundation even has a Java distribution, called Eclipse Temurin, which is free and updated every time Oracle (who bought Sun) releases a new version of Java.
Speaking of names, do you know what Temurin means? It has two definitions:
It’s the name of an organic molecule that strongly resembles caffeine (caffeine == Java, get it?):
It’s also an anagram for the word runtime. Try rearranging the letters in Temurin and you’ll see. :)
I ran a private Latest Features in Java class, similar to the same class I ran as an NFJS virtual workshop a week ago. In both classes, I had one student who used Eclipse, while everyone else was on IntelliJ IDEA. That’s fine, but it turned out it’s really hard to get Eclipse to understand the latest Java features, especially if they are in preview status.
I eventually figured out how to make them work inside Eclipse, but it wasn’t fun or easy. As a result, I decided to publish another video this week (this morning, to be precise) explaining the process:
I debated doing this or not, since the video is likely to appeal to only about a dozen people (an exaggeration, but you get the idea), but I figured while a few people are going to care, those who do care will care a lot. Besides, it gave me a chance to play around with the thumbnail designer in Canva, with the results you can see starting the video.
Also, that indeed is my brand new T-shirt that reads “rage against the machine learning” which I mentioned in last week’s newsletter. I couldn’t resist getting one, though I didn’t make an issue out of it in the video.
Here’s a better photo, showing the T-shirt:
Cool, right? Just keep in mind that the camera adds 10 pounds, and there were at least three cameras on me at the time.
Finally, I got about the nicest possible YouTube comment the other day, which I have to share with you:
Wow. I couldn’t bring myself to post that on social media, but hey, we’re all friends here, right? Hopefully you won’t mind my including that. :)
Josh Long and This Month in Spring
When I was in Bangalore at GIDS (Great International Developer Summit), I met with Josh Long, Spring developer advocate extraordinaire and owner of the YouTube channel Coffee + Software with Josh Long. We did a live stream on his channel, which you can find here.
(Josh does so many live streams that even though ours was only three weeks ago, it’s already 15 episodes down the list. He apparently does several at each conference he attends, and he attends a LOT of conferences.)
Last week Josh published his This Month in Spring newsletter for May 2023. In it, he linked to his podcast, called A Bootiful [sic] Podcast, which was an audio extract from our live stream.
(Yeah, I added the “[sic]” part, both because it’s a sic pun, and because it makes me sic. I hereby now promise to never, ever use that pun again. My jokes may be bad, but I do try to stay away from anything that wince-inducing. For some reason, Josh likes that one and uses it all the time. It takes all kinds, I guess.)
Tweets and Toots
ContraPoints on AI
One of the creators I sponsor on Patreon is Natalie Wynn, better known as ContraPoints. This month she put together a video as part of a series she calls Tangents:
She did an excellent job. I linked that image to the original tweet, but I’m not sure who will be able to watch the video. I’ll just say it was great and leave it at that.
Elon, Yet Again
The tweet by John Scalzi says it all, and I’m not going to recap the offensive lunacy that preceded it. To think at one point I actually had a modicum of respect for Elon Musk. Yuck. One of the slimiest, most pathetic, and just plain stupid losers I’ve ever encountered online.
I went to Canva and designed the following bumper sticker for my Tesla Model 3:
What do you think? I’m kind of embarrassed to drive my car these days and maybe this will help.
Favorite Tech Innovation
This poll made the rounds this week:
Those aren’t my results, btw. I spend a fair amount of time and money on Uber rides, but my usage of ChatGPT is ramping up. I’ve never stayed at an AirBnB or bought any Bitcoin (thank goodness).
Speaking of AI
Yeah, that works.
Maple
Ew, no, but somehow yes.
Apparently, he can’t
Is it overly pedantic of me that I find the lack of capital letters or a period annoying?
Finally, timely advice
Yeah, I’ll get on that right away.
Have a great week everybody!
The video version of this newsletter will be on the Tales from the jar side YouTube channel tomorrow. Last week I also published each section as a separate, shorter video, and some people seemed to like that, so I’ll probably do it again.
As a reminder, you can see all my upcoming training courses on the O’Reilly Learning Platform here and all the upcoming NFJS Virtual Workshops here.
Last week:
Spring Data and the Java Persistence API, an NFJS Virtual Workshop.
Java Upgrade from 11 to 17, private class.
This week:
No classes! I need to finish the upgrade of my Spring course, but expect more videos anyway.