The Payara Monthly Catch for June 2020

Photo of Jadon Ortlepp by Jadon Ortlepp

As usual, it was a busy month. With some big announcements from Microsoft and Oracle (see News section), the Jakarta EE 9 release, as well as Developer Survey results published by JetBrains, Eclipse and Snyk. We also had a major release ourselves. Sifting through the content I had a sense of renewed optimism and progress in the Java community. 

Below you will find a curated list of some of the most interesting news, articles and videos from the last month. Cant wait until the end of the month? then visit our twitter page where we post all these articles as we find them! 

Monthly Catch Social Media


How to write a (toy) JVM In this articleSerge Zaitsev creates a toy (and incomplete) JVM to show the core principles behind it and hopefully sparkle some interest for you to learn more about the Java Virtual Machine

The excellent "Think Java" book is now available as wiki under CC BY-ND License. Intended for beginners, this book is a fantastic resource and starting point.

Performance of Modern Java on Data-Heavy Workloads - Hazelcast decided to put Oracle's Z & OpenJDK's Shenandoah to the test & find which choices work well with workloads typical for their distributed stream processing engine, Hazelcast Jet.

The 25 greatest Java apps ever written - According to Alexa Weber Morales & Oracle Java Mag. From space exploration to genomics, from reverse compilers to robotic controllers. 

Jakarta Security and REST in the Cloud Part 1: Hello World - There is not enough discussion about Security, but there should be. In this blog Otavio Santana explores safety in the Jakarta EE world with Jakarta Security in microservices in the cloud.

Jakarta EE Security & Rest in the Cloud: Part 2 - In this 2nd part, Otavio Santana speaks of the BASIC authentication process, how to implement it with a non-relational database, in this case, MongoDB & how to quickly take it to the cloud.

Jakarta EE Security & REST in the Cloud Part 3: Knowing the OAuth2 - In this third part Otavio Santana talks about the OAuth2 authentication process, moving it quickly to the cloud, & how to implement it with two MongoDB and Redis databases.

Configuring SSL/TLS Connection Made Easy - In this article, Hakan Altındağ discusses how to easily configure an SSL/TLS connection in #Java to better secure your application.

Debugging: Diagnose and Detect the Cause of Errors in your Application - This guide will help you to diagnose and detect the cause of errors in your application by debugging Payara Server or Payara Micro using the NetBeans plugin.

JDK 15: The new features in Java 15 - Paul Krill discusses the next version of standard Java, which will feature text blocks, garbage collectors, hidden classes, and previews of pattern matching and records.

How the deprecation of Java applets affected online visualization frameworks –  An interesting case study by Martin Skrodzki exploring how the deprecation of Java applets affected online visualisation frameworks.

Send emails with Java EE and JavaMail using Payara - Philip Riecks explains how to send emails using the JavaMail API 1.6 with Java EE 8 running on the Payara application server and a local or remote SMTP server.

A Kubernetes Service Mesh Tool Comparison for 2020 - This article by Damian Velazquez Cafaro compares the benefits and drawbacks of service mesh tools: AWS App Mesh, IstioMesh, Linkerd, KumaMesh, Consul Connect, and EnvoyProxy.

How to Design an Optimal Microservice Architecture - While the exact architecture will vary, Gaurav Mishra discusses certain best practices that will help design effective and optimal microservices architecture.

On Project Loom, the Reactive model and coroutines - With Java 15 debuting Project Loom. Nicolas Frankel believes this will be a game-changer for the JVM. This blog explores the reasoning behind why he believes it will be so impactful.

Heap Memory In Java Applications Performance Testing - In this article, Radha Krishna Prasad explores several different models, approaches, resources, and tips available for Java Heap to fully optimize any Java application.

12 recipes for using the Optional class as it’s meant to be used- Mohamed Taman
discusses his dozen best practices to protect your applications against ugly null pointer exceptions—and make your code more readable and concise.

The Low-Latency Rematch: Performance of Modern Java on Data-Heavy Workloads -Following up on Part 1 by Marko Topolnik, analyzing the performance of modern JVMs on workloads that are relevant to the use case of real-time stream processing.

"How we got the generics we have" - This article by Brian Goetz focuses on how the generics that exist now were developed, and why, as a means of setting the groundwork to influence the “better” generics they are trying to build.

Java 11 Upgrade Tip: Don't Rely on Generated serialVersionUID - Principal Software Engineer at Hubspot, Jonathan Haber discusses their migration from Java 8 to 11 & has tips to make the process as smooth as possible.

The illusion of statelessness - A very interesting article from Nicolas Frankel exploring why he believes statelessness is very rarely achievable.

Comic Of The Month


Videos & Podcasts

Facebook TransCoder - An interesting video which discusses an AI project that translates code from one programming language to another. However, would this ever be technically viable in real world applications?
Architecting Low-Latency Java Systems at Massive Scale - In this video, Simon Ritter & Denis Magda review a Java-powered software stack based on Azul Systems Zing and Apache Ignite that makes JVM behaviour predictable, scales out linearly, and allows selecting Java for high-throughput low-latency scenarios. 
Bruno Hates YAML-Microsoft Loves Java - New Adam Bien Airhacks episode! Learn all about Bruno Borges sarcastic love for YAML and Microsofts real love for Java ! Plus lots, lots more. 
Programming Wallpaper over Violin - Another fun and interesting interview from Adam Bien, with one of our favourite humans, Lenny Primak. Check it out! 
Episode 91. OracleJDK? OpenJDK?, Zulu? Corretto? So many! - Another great episode from Java Pubhouse where they discuss the history of OpenJDK, and why there are many JDKs available. The licensing terms, and the key differences between OpenJDK, Azul, and OpenJ9.
Applying Bulkheads And Backpressure using MicroProfile - In this video, Sebastian Daschner shows how MicroProfile Fault Tolerance enables us to apply the same principles, with even less configuration, by combining JAX-RS asynchronous resources, completable futures, @Asynchronous, and @Bulkhead.

Community News

The 2020 Jakarta EE Developer Survey results were published this month.

Jakarta EE 9 - Milestone 1 Released by Eclipse Foundation 

Snyk announced the release of their State of Open Source Security report for 2020

The State of Developer Ecosystem in 2020 Infographic - Earlier this year, JetBrains surveyed 19,696 developers from 18 countries, who helped quantify developer community trends in programming languages, tools, technologies, & even lifestyle!

Payara Platform Community (5.2020.2) & Payara Platform Enterprise (5.20.0) is released. The Community Release includes 26 bug fixes, 13 improvements, 2 new features, & 5 component upgrades.

Announcing OpenJDK for Windows 10 on ARM - Bruno Borges shares that the Java at Microsoft team has completed the first phase of porting OpenJDK for Windows 10 on Arm (AArch64) based devices. 

Oracle Coherence available as free and opensource software in Coherence Community Edition.

A Tribute to Bill Shannon – A Giant of the Java Ecosystem - A terrible loss for all that knew him and the Java community as a whole. Many incredible things were built, and will continue to be built on the foundations he created. Rest In Peace.