foojay — a place for friends of OpenJDK

What’s New in OpenJDK?

Foojay Today

  • Introduction to JVM Unified Logging (JEP-158 / JEP-271)

    Unified logging was introduced in JDK 9, and is available for us all, in the JDK 11 LTS. Like other great serviceability feature (jcmd or JFR) this was inspired by JRockit.

    In my opinion the flexibility of this logging system brought a major downside from a user’s perspective in its configuration correctness, and I think in some ways it’s more obscure compared to the previous explicit logging flags.

    Brice Dutheil
    Read more
  • Deploying Spring Boot Applications on Kubernetes

    In this article, I will explain how you can create a pod, deploy a Spring Boot application, and manage the single node cluster with Lens IDE on Docker Desktop.

    By the end, you will have learned how to enable Kubernetes on Docker Desktop for Mac, created a basic pod, deployed a Spring Boot application, and managed our single-node Kubernetes cluster with the help of Lens IDE.

    What are you waiting for? Go containerize and share your applications!

    Ashish Choudhary
    Read more
  • Custom Controls in JavaFX (Part V)

    Learn how to create a custom control that is based on the JavaFX Region class. The Region class is the class that all JavaFX controls are based on. It is a resizable Parent node which can be styled from CSS.

    This is the class that you would want to use when building a JavaFX custom control that is not part of a controls library.

    The main difference between the Region and the Control + Skin based approach is the fact that the Region based control contains both, the control logic and the UI where the Control + Skin based control separates the logic from the UI. The logic can be found in the Control and the UI can be found in the Skin.

    Read more
  • Evolution of Java Memory Architecture (Pre Java 8.0)

    Welcome to a series of articles on key concepts in Core Java and J2EE. The series revolves around memory architecture, connection and memory leaks, core Java syntax and semantics, Java Object layout/anatomy, multi-threading, asynchronous task execution, design patterns, Java agents, class loading, API design, OOPs & SOLID.

    In this part, we focus on the Java Memory Architecture, from before Java 8.

    Sumith Puri
    Read more
  • Towards Continuous Performance Regression Testing

    JfrUnit is an extension for JUnit 5 which integrates Flight Recorder into unit tests.

    It makes it straightforward to initiate a JFR recording for a given set of event types, execute some test routine, and then assert the JFR events which should have been produced.

    Stay tuned for next parts in this series, where we’ll explore how to trace the SQL statements executed by an application using the JMC Agent and assert these query events using JfrUnit.

    Read more
  • Delegation vs. Inheritance in Graphical User Interfaces

    At this point, we have seen how you can achieve a more robust variant of a composition by delegation rather than inheritance.

    You can also use this if you are confronted with legacy source codes with this anti-pattern.

    It’s not always possible to clean up everything or change it to the last detail.

    But I hope this has given an incentive to approach this situation.

    Read more
  • Modules, Modules, Everywhere!

    Since August 2018, I have been compiling an overview of Java modules uploaded to Maven Central.

    This overview is generated by the Scanner program and it is based on the results of the modulescanner that is run on Sonatypes hardware on every uploaded JAR file and stored in an AWS S3 bucket, setup together with the AdoptOpenJDK team at their #java9plusadoption Slack channel.

    Some of those uploaded JAR files are Java modules. They are the interesting subjects of this overview as they contain a module-info.class, a compiled module descriptor with a stable name and an explicit API their author(s) comitted to.

    Read more
  • Much Ado About Nothing in Java

    Occasionally something in Java pops up that I thought I knew about, but it turns out I didn’t appreciate all the subtle details.

    This was recently the case for “nul”. Before I started using Java, the main programming language I used was C.  This was great for things like operating systems and device drivers because it uses explicit pointers. References to data are through a numerical address that can be manipulated if required.

    Although null might seem like a simple, straightforward concept, there are some edge cases that make its use require a little more thought. I hope this provides you with a better understanding of nothing (null).

    Read more
  • Payara Platform 2021 Survey

    The Payara Platform 2021 Survey is underway and we’re inviting everyone to answer a few questions about your use of the Payara Platform and ecosystem components.

    We want to know what you like, what you want to see improved, and we’re giving you the opportunity to vote on new features you’d like to see added to the Payara Platform.

    Your survey  answers help drive future development efforts for the Payara Platform.

    Jadon Ortlepp
    Read more

    This week, I learned about a nifty “new” feature of Optional that I want to share in this post. It’s available since Java 9, so its novelty is relative.

    We start with a sequence to compute the total price of an order, for which it is nowadays more adequate to use streams instead of iterations.

    Optional makes the code less readable! I believe that readability should trump code style every single time.

    Fortunately, Optional offers a stream() method (since Java 9). It allows to simplify the functional pipeline. Functional code doesn’t necessarily mean readable code. With the last changes, I believe it’s both.

    Read more

Best Java 15 Feature?

Oops. Error.

Java Version Almanac

Events Calendar

    • Virtual

    JavaLand 2021

    Due to the current pandemic situation, we have decided to hold JavaLand 2021 exclusively as a two-day online conference. On March 16 and 17, you can look forward to more than 120 talks in eight streams around your favorite Java …

    Event Page
    • Virtual

    TDC Online 2021

    The Developer’s Conference (TDC) is the largest event related to software development in Brazil connecting meetup and event organizers, speakers, companies and sponsors on a single platform, empowering the local ecosystem of each region it’s realized. TDC is a very …

    Event Page
    • Virtual & Free


    Conf42 was created in 2019 by Pawlikowski brothers. We organise Computer Science Conferences. Our goal is to bring together speakers from all around the world to help their ideas reach a larger public. Conf42 collaborates with world-class Computer Science practitioners from a variety …

    Event Page
    • Virtual & Free

    GIDS Live 2021

    Tune in for Wurreka’s second virtual conference and job event series, GIDS Live 2021, April 27-30. The four-day program includes an eclectic mix of technical talks, conversations and experiences, featuring some of the most talented and influential figures in software …

    Event Page
    • Virtual

    GeeCON 2021

    GeeCON is a conference focused on Java and Java Virtual Machine based technologies, with special attention to dynamic languages like Groovy and Scala. GeeCON is a forum for sharing experiences about modern software development methodologies, enterprise architectures, software craftsmanship, design …

    Event Page
    • Virtual

    QCon Plus

    A learning experience for senior software engineers. QCon Plus is an online experience where you can build your own learning journey. Learn from technical talks, engage in real-time live sessions, and develop new skills to validate your software roadmap.

    Event Page
    • Virtual

    Java Day Istanbul

    Java Day Istanbul is one of the most effective international community driven software conference of Turkey supported by Istanbul Java User Group. The conference helps developers to learn the newest technologies about Java, Web, Mobile, Big DATA, Cloud, DevOps, Agile …

    Event Page
  • GOTO Copenhagen

    GOTO is the enterprise software development conference designed for team leads, architects, and project management and is organized for developers, by developers. As software developers and architects ourselves, we wanted to craft the ultimate conference. The result is a high …

    Event Page
  • GOTO Amsterdam

    GOTO is the enterprise software development conference designed for team leads, architects, and project management and is organized for developers, by developers. As software developers and architects ourselves, we wanted to craft the ultimate conference. The result is a high …

    Event Page
  • Voxxed Days Zurich

    Voxxed Days Zürich 2020 was cancelled due to the Coronavirus but we are already planning the next edition as soon as it will be possible. Current target date is June 15th, 2021. We will monitor how the situation evolves and …

    Event Page

OpenJDK Command Line Arguments

OpenJDK Terminology

What’s foojay?

Welcome to foojay, a place for friends of OpenJDK. Foojay’s user-focused Java and OpenJDK technical dashboards provide free data for daily Java developers. At the click of a button, you have access to updated analyses, selected highlights, and categorized lists arranged for easy consumption on all things Java.

Greatest Tweets

  • "I read the change logs of the tools I’m using, but Java was not on the top of my list. Thanks to foojay, it may finally be a pleasing exper

    Mike Kowalski @mikemybytes
  • "One of the best resources on Java is"

    Chandra Guntur @CGuntur
  • "Wow, is a fantastic place for OpenJDK and Java in general, new features, explanations, and great content posted every day, try it!"

  • "Do you want to find any information related to OpenJDK and Java? Then follow @foojay2020 and visit!"


Latest Tweet

Subscribe to foojay updates:
Copied to the clipboard