- Home
- OpenJDK Update Release Details
- Java Version Almanac
- OpenJDK Terminology
- JVM Command Line Arguments
- OpenJDK 16 Command Line Arguments
- OpenJDK 15 Command Line Arguments
- OpenJDK 14 Command Line Arguments
- OpenJDK 13 Command Line Arguments
- OpenJDK 12 Command Line Arguments
- OpenJDK 11 Command Line Arguments
- OpenJDK 10 Command Line Arguments
- OpenJDK 9 Command Line Arguments
- OpenJDK 8 Command Line Arguments
- OpenJDK 7 Command Line Arguments
- OpenJDK 6 Command Line Arguments
- Java Events
- Advisory Board
- Contributors
- Download OpenJDK
- Foojay Today
- Hard Things in Computer Science
- Spring Boot Performance Workshop with Vlad Mihalcea
- K8ssandra ramps up security features to match Kubernetes’ best practices
- MicroStream - Part 3: Storing Data
- Master-Detail with Hilla
- Java on Visual Studio Code - May Update
- Debugging jsoup Java Code in Production Using Lightrun
- Data Modeling in Cassandra and Astra DB
- Deep Learning in Java for Nuclear Physics using Deep Netts
- What I Miss in Java, the Perspective of a Kotlin Developer
- MicroStream - Part 2: Configure the Storage Manager
- Wordish with JavaFX - Part 5
- Java on Azure Tooling Update – June 2022
- Remote Debugging and Developer Observability
- Tombstones and Ghost Data Don’t Have to Be Scary!
- Building Project Panama's jextract tool by yourself
- Create Music Bingo Cards with iText
- My Summary of jPrime 2022
- Managing Distributed Applications in Kubernetes Using Cilium and Istio with Helm and Operator for Deployment
- How to Add an Event to the Foojay Event Calendar
- Wordish with JavaFX - Part 4
- Running Jekyll on a Mac
- MicroStream - Part 1: What is it?
- Debugging the Java Message Service (JMS) API using Lightrun
- How to Develop and Test an Automated CI/CD Workflow with Cassandra
- How DataStax Tracked Down a Linux Kernel Bug with Fallout
- Journeys in Java, Level 5: Building an Empire of Microservices
- What Can We Expect In OpenJDK 19?
- Optimizing Distributed Joins: The Case of Google Cloud Spanner and DataStax Astra DB
- Wordish with JavaFX - Part 3
- Embracing Java 17: Here’s What We Learned at Picnic
- Memory Debugging and Watch Annotations
- Java Panama Polyglot (Rust) Part 4
- Book Review: Monolith to Microservices (Part 2)
- Wordish with JavaFX - Part 2
- Chopping the Monolith: The Demo
- Debugging Deadlocks and Race Conditions
- Why Developers Should Use Apache Pulsar
- Let's Compile Java Code in the Cloud!
- Book Review: Monolith to Microservices (Part 1)
- Wordish with JavaFX - Part 1
- Toying with Kotlin's Context Receivers
- Azure Toolkit for IntelliJ – April 2022 Update
- Diving into JVM Framework Monitoring and Profiling
- How to Publish a Java Maven Project to the Maven Central Repository
- How to do password hashing in Java applications the right way!
- Getting More Mileage Out of Kafka: OpenJDK vs. Azul Prime
- How to run the Java Incubator Module from the Command Line and IntelliJ IDEA
- Setting up and Working with Apache Tomcat in IntelliJ IDEA Ultimate
- Modernize Legacy Code In Production: Rebuild Your Airplane Midflight Without Crashing
- Conditional Builds on GitLab
- How to Enable Java Preview Features and Run Code from IntelliJ IDEA
- Spring Transaction Debugging in Production with Lightrun
- 5 More Reasons to Choose Apache Pulsar Over Apache Kafka
- Bring Streaming to Apache Cassandra with Apache Pulsar
- Easy Jakarta EE Integration Testing
- How To Submit Your Next Article On Foojay.io
- Securely Authenticate to Google Cloud from GitHub
- Debugging Collections, Streams and Watch Renderers
- Thinking About Massive Throughput? Meet Virtual Threads!
- Journeys in Java, Level 4: Building an Empire of Microservices
- Java Panama Polyglot (Python/Tensorflow) Part 3
- Chopping the Monolith
- Java on Visual Studio Code Update – April 2022
- Exception Breakpoint that Doesn't Suck and a Real Use Case for Method Breakpoints
- SQL vs. NoSQL: Pros & Cons
- Building a Fullstack IMDB Clone with a Java Backend using SparkJava and Neo4j
- Does Java 18 Finally Have A Better Alternative To JNI?
- How To Beautify Your GitHub Repo
- Introducing the OpenJDK "Coordinated Restore at Checkpoint" Project
- Java Panama Polyglot (Swift) Part 2
- Top 10 Java Language Features
- "Contrast Security Joins Foojay Advisory Board to Accelerate Java Developer Community Growth, Raise Security Perspective" — PR News
- How to Create APIs with the Java 18 jwebserver Ready for Docker
- Logging Best Practices: MDC, Ingestion, and Scale
- Migrating from Java EE to Jakarta EE with IntelliJ IDEA
- Quest to the OS: Java Native Memory
- Spring4Shell: Zero-Day RCE in Spring Framework Explained
- Java Panama Polyglot (C++) Part 1
- Examining the Switch Statement and the Factory Pattern in Three JVM Languages
- Three Mistakes Junior Software Developers Make Preventing Getting Hired On Amazing Projects
- How to Style a Vaadin Application
- Debugging JAXB Production Issues
- Handling Null: Optional and Nullable Types
- Hardware Acceleration For Java? TornadoVM Can Do It!
- Spring Remote Code Execution Vulnerability
- Quick Fire Java: Java After Log4j
- Observability for JVM Frameworks with Grafana in Java and Kotlin
- Increasing Event Streaming with Kafka and Azul
- Debugging Java Equals & Hashcode Performance in Production
- APISIX: An API Gateway the Apache Way
- Blink a LED on Raspberry Pi with Vaadin
- 5 Things You Probably Didn’t Know About Java Concurrency
- Java Security: Log4J, the SecurityManager, and Funding
- Full Stream Ahead: Astra Streaming, Powered by Apache Pulsar
- Debugging Race Conditions in Production
- What's New and Exciting in Java 18?
- Error Handling in Java and Across Different Languages
- All about Generics: Part 1
- Reaper 3.0 for Apache Cassandra is available
- Security Warning: Your Java Attack Surface Just Got Bigger
- The Basics Of Breakpoints You Might Not Know
- Interview with Tom Granot - Developer Observability, KoolKits and Reliability
- Visualization of the Message Flow between Business Functions with Vaadin and Neo4j
- 7 Reasons Why, After 26 Years, Java Still Makes Sense!
- Lessons learned from previous projects
- JDKMon 17.0.23 Released
- Have you upgraded to Cassandra 4.0?
- Detecting, Investigating and Verifying Fixes for Security Incidents and Zero Day Issues Using Lightrun
- Vaadin and jOOQ: Match Made in Heaven
- Hilla 1.0: A new Frontend Framework for SpringBoot
- Java Bytecode Simplified: Journey to the Wonderland (Part 1)
- Alternatives to DTO
- Journeys in Java, Level 3: Building an Empire of Microservices
- The Serverless Database You Really Want
- Why Pulsar Beats Kafka for a Scalable, Distributed Data Architecture
- Debugging Tutorial: Java Return Value, IntelliJ Jump to Line and more
- Java Thread Programming (Part 14)
- Kover : Code Coverage plugin for Kotlin
- Avoiding Stringly-typed in Kotlin
- Introducing KoolKits: OSS Debugging Toolkits for Kubernetes
- Measuring Time and Duration in Kotlin
- Save Hours on your Setup of K8ssandra with the New Config Builder
- Project Panama for Newbies (Part 4)
- Use git bisect to Pinpoint a Bug
- Jakarta Concurrency: Present and Future
- Why we decided to build a K8ssandra Operator - Part 4
- Enter the Cloud Native Dojo: Blackbelt-Level Debugging
- Java on Visual Studio Code Update: February 2022
- Hand Ground Coffee: Command Line Tools for Java
- Controlling Electronics with JBang on the Raspberry Pi
- 7 Ways to Improve Your Code Reading Skills
- The Critical Role Streaming Plays in a Data Stack
- System Logger
- Foojay at FOSDEM 2022 on YouTube
- Journeys in Java, Level 2: Building an Empire of Microservices
- Playing practically with Stream API
- Cassandra Database Migration to Kubernetes with Zero Downtime
- Building Reactive Java Applications with Spring Framework
- Introducing 140 Second Ducklings: What is Debugging?
- Backpressure in Reactive Systems
- Debugging RAM: Detect/Fix Memory Leaks in Managed Languages - Heap Deep Dive (Part 2)
- Building Scalable Streaming Applications with DataStax Astra Streaming
- SQL vs. NoSQL: Pros & Cons
- Java Thread Programming (Part 13)
- Installing Java with SDKMAN on Raspberry Pi
- Deploying to Multiple Kubernetes Clusters with the K8ssandra Operator
- GoF Design Patterns Using Java - Part 02
- Video: SDKMAN Explained
- Backing up K8ssandra with MinIO
- Lights, Camera, Action: GitHub Actions with Java (Part 3)
- Friends of OpenJDK at FOSDEM with Prizes
- Create a CRUD UI in Pure Java
- Four Reasons Why Apache Pulsar is Essential to the Modern Data Stack
- Unboxing K8ssandra: The Data Layer For Your Kubernetes-Powered Applications
- Java Thread Programming (Part 12)
- The Flatten Maven plugin
- Journeys in Java, Level 1: Building an Empire of Microservices
- Treat Security as a Risk
- Java on Visual Studio Code Update – January 2022
- Java Thread Programming (Part 11)
- The State of Java in 2022
- Introduction to Maven Toolchains
- Statically Spilling Your (Spring) Beans
- Introducing the GKE Autopilot Cluster
- Taking Your Database Beyond a Single Kubernetes Cluster
- Polyglot Cloud Native Debugging: Beyond APM and Logging
- You're Running Untrusted Code!
- Kubernetes and Apache Cassandra: What Works (and What Doesn’t)
- Foojay Status Report: July – December 2021
- Template to Get Started with Pi4J and JavaFX on Raspberry Pi
- How to Put a Database in Kubernetes?
- Monitoring Spring Boot Applications (Part 1)
- Hype-Driven Development: Don't Be a Victim!
- Debugging RAM: Java Garbage Collection - Java Heap Deep Dive (Part 1)
- A Tentative Comparison of Fault Tolerance Libraries on the JVM
- Log4Shell Shows The Need for "Trustworthy Java"
- Hashcode and Equals: Debugging and Performance
- Requirements for Running K8ssandra for Development
- Why K8ssandra?
- MQTT on Raspberry Pi (Part 3): Sending sensor data from Raspberry Pi Pico to HiveMQ Cloud
- Simplify Migrating from Kafka to Pulsar with Kafka Connect Support
- JReleaser 0.10.0 Released!
- Different Approaches to Building Stateful Microservices in the Cloud Native World
- FXGL Game Engine 17 Released
- The State of Pattern Matching in Java 17
- New Survey Finds Data on Kubernetes Is No Longer a Pipe Dream
- The future of cloud-native databases begins with Apache Cassandra 4.0
- Santa Claus Issues YuleLog4J Advisory
- Java Modules in the Pi4J Project?
- Kubernetes Data Simplicity: Getting started with K8ssandra
- MQTT on Raspberry Pi (Part 2): Using MQTT and Raspberry Pi to Visualize Sensor Data on a TilesFX Dashboard
- Java Thread Programming (Part 10)
- Beautify Third-Party APIs with Kotlin
- Say Goodbye to Project Files in Visual Studio Code
- JDKMon 17.0.18 Released
- Java Logging: What To Log & What Not To Log?
- What is GitOps? What are its benefits?
- Build a Status Dashboard Using Spring Boot and Astra DB
- Build Web Apps in Pure Java with Vaadin Flow
- Log4Shell / Leak4J
- 7 Reasons to Choose Apache Pulsar over Apache Kafka
- MQTT on Raspberry Pi (Part 1): Send Sensor Data to HiveMQ Cloud with Java and Pi4J
- Fail-Fast: Best Strategy for Reliable Software?
- Java Thread Programming (Part 9)
- Log4j2 Isn’t Killing Java
- Native-image with Quarkus
- Log4Shell: Critical Log4j RCE Vulnerabilty - Update to Version 2.15.0
- JUnit 5 Display Names
- Fast JMS for Apache Pulsar: Modernize and Reduce Costs with Blazing Performance
- Adelphi: Apache Cassandra™ Testing Goes Cloud Native
- Build and Test Non-Blocking Web Applications with Spring WebFlux, Kotlin and Coroutines
- Multiple Spring Boot Applications in the Same Project
- JDKMon 17.0.17 Released
- Java Thread Programming (Part 8)
- Debugging the Technical Interview: Methods and Cheating
- Friends of OpenJDK at FOSDEM 2022
- JUnit 5 Testing Basics
- New Java 17 Features for Improved Security and Serialization
- Vaadin 22 Released with Quarkus Support and Stateless Fusion
- Why a Serverless Data API Might be Your Next Database
- Backing up K8ssandra with MinIO
- JReleaser 0.9.0 Released!
- Developer Productivity Masterclass: Interview With Leonid Blouvshtein
- Port Management in Local Kubernetes Clusters
- JUnit 5 Introduction
- Book Review: “Effortless Cloud-Native App Development Using Skaffold” (2)
- Developing an Enterprise-Level Apache Cassandra Sink Connector for Apache Pulsar
- K8ssandra: Production-Ready Platform for Running Apache Cassandra on Kubernetes
- Java Thread Programming (Part 7)
- Native-image with Micronaut
- Equals and Hashcode Implementation Considerations
- Understanding Apache Maven (Part 9): Versions in Maven
- Native-image with Spring Boot
- A List of Cache Providers
- SKP's Agile Cheatsheet : Part 03
- A Walk to Lazy Fetching With Hibernate and Spring Data JPA
- Java Thread Programming (Part 6)
- Production Horrors – Customer Miscommunication Leads to Ongoing Nightmare
- Lights, Camera, Action: GitHub Actions with Java (Part 2)
- 7 Reasons to Switch to OpenJDK 17 as a Jakarta EE Developer
- Working with Multiple Carets in IntelliJ IDEA
- Understanding Apache Maven (Part 8): Maven Plugins
- Visual Recognition for Chess with Deep Learning in Java on Android
- Streams Set Distinct Java Code Quiz
- Let’s Use Optional to Fix Method Contracts
- Book Review: "Why Programs Fail"
- Extending Third-Party APIs in Different Languages
- Understanding Apache Maven (Part 7): Configuring Apache Maven
- SKP's Agile Cheatsheet: Part 02
- Hazelcast + Kibana: Best Buddies for Exploring & Visualizing Data
- How Social Trends Help Me Fix Essential Vulnerabilities
- Production Horrors – Handling Disasters: Public Debrief
- JReleaser 0.8.0 Released!
- Kotlin and FaaS: An Impossible Union?
- Java Thread Programming (Part 5)
- VS Code Java September 2021 Update
- Understanding Apache Maven (Part 6): POM Reference
- SKP's Agile Cheatsheet: Part 01
- Lights, Camera, Action: GitHub Actions with Java (Part 1)
- Exception Chaos Java Code Quiz
- Debugging Tutorial 1 – Introduction: Conditional Breakpoints
- Choosing a Cache: Capabilities
- Java Thread Programming (Part 4)
- Discussion: State of Java 2021
- Announcing the 1.0 release of Language Support for Java on Visual Studio Code
- Git Archeology: Go Back & Forward in Time
- Understanding Apache Maven (Part 5): Dependencies in Maven
- Java Thread Programming (Part 3)
- PSA: The Risks of Remote JDWP Debugging
- Foojay Podcast #4: Why So Many JDKs?
- Reassessing TestNG vs. Junit
- Contributing to OpenJDK Mission Control
- Java: Where the Wild Code Isn't
- JavaFX Templates for Desktop Applications
- Book Review: "Effortless Cloud-Native App Development Using Skaffold"
- Faster Maven Builds (Part 2): Inside Docker
- Faster Maven Builds (Part 1)
- GlassFish & Payara Auto-Clustering: Running Jakarta EE Highly-Available Applications in the Cloud
- Getting Started with Jakarta EE 9: Jakarta EE 9.1
- Payara Platform October 2021 Survey
- Java Thread Programming (Part 2)
- The Costs of Hidden Logging
- JReleaser: Looking for Translation Contributions
- Understanding Apache Maven (Part 4): Maven Lifecycle
- Java Thread Programming (Part 1)
- Multiple Ways to Configure Spring
- Understanding Stack Traces and Debugging them Further
- Book Review: "Quarkus for Spring Developers"
- Understanding Apache Maven (Part 3): Maven Coordinates & POM Inheritance
- K8ssandra Performance Benchmarks on Cloud Managed Kubernetes
- JReleaser 0.7.0 Released!
- Arrays and Object Reference Java Challenge Code Quiz
- The Debugger Checklist (Part II)
- The State of JVM Desktop Frameworks: Jetpack Compose for Desktop
- Java 17 on the Raspberry Pi
- Compact Strings: Reclaim 25% of Java Heap Memory & Lower Your Cloud Bills
- Building Command Line Interfaces with Kotlin using picoCLI
- Thorntail Fat, Thin, and Skinny Approach for Running Microservice Java Applications
- The Debugger Checklist (Part I)
- VS Code Java August Updates: SpringOne Updates, UX Improvements, Community Feedback
- Annotation-free Spring
- Parallel Streams Java Code Quiz
- Getting Started with Java 17 and IntelliJ IDEA
- Project Panama for Newbies (Part 3)
- Timely Computation of Derived Values
- 8 Debugging Tips for IntelliJ IDEA Users You Never Knew Existed
- Daemon Thread Java Code Quiz
- Demystifying Memory Management in Modern Programming Languages
- Everyday Shortcuts in IntelliJ IDEA
- "Works with OpenJDK" Campaign
- Understanding Apache Maven (Part 2): POM Hierarchy and Effective POM
- Do Java/Jakarta EE Standards Matter?
- Function Calculation Java Challenge
- Foojay Podcast #3: Journey to Jakarta EE
- Pi4J V.2 Released!
- Tomcat and TomEE Clustering Automation
- Understanding Apache Maven (Part 1): The Basics
- Is the Java/Jakarta EE Deployment Model Out of Date?
- Looking For Free Docker Registries
- Better Error Handling for Your Spring Boot REST APIs
- Deep Learning in Java for Drug Discovery
- SolarWinds Hack And The Executive Order Of Cybersecurity: What Does This Mean For Us?
- Updating Data Files: Commits vs. Pull Requests?
- Is Java/Jakarta EE Cloud-Native?
- Project Panama for Newbies (Part 2)
- Stream Limit Filter Java Challenge
- VS Code Java July 2021 Update: New Testing Experience, Maven Improvements, and Product Roadmap Progress Update
- Book Review: "Help Your Boss Help You"
- Are Java/Jakarta EE Application Servers Heavy?
- Why You Should Upgrade to Maven Version 3.8.1 Today or Very Soon
- Schedule for Foojay Virtual OpenJDK 17+ JUG Tour
- Project Panama for Newbies (Part 1)
- JDK Mission Control 8.1.0 Released!
- New Book: "Practical Vaadin"
- No-Cost IBM Semeru Runtimes for Java
- SAST, DAST, IAST and RASP
- GitLab: Your Continuous Deployment One-Stop Shop
- JReleaser 0.6.0 Released!
- Are Java Security Updates Important?
- SKP's Definitive Primer: Failures, Pitfalls & Disadvantages of Microservices
- Getting Started with Snyk for Secure Java Development
- Is Java EE Outdated & Dead?
- Rust and the JVM
- Neo Stream Search Java Challenge
- Connect Stateful Workloads Across Kubernetes Clusters
- Foojay Podcast #2: Embedded Java
- Book Review: "Seriously Good Software"
- Virtual Foojay OpenJDK 17+ JUG Tour
- Jedi Lambda Join Java Challenge
- FXGL Game Engine 11.17 Release
- Get Your JDK As Easily As Possible!
- VSCode Java: Roadmap Update and New Features
- The Search for a Cloud-Native Database
- Best Practices for Data Pipeline Error Handling in Apache NiFi
- CVSS 101: First Steps with Common Vulnerability Scoring System
- A Case for Databases on Kubernetes from a Former Skeptic
- Learn JShell with JavaFX in 60 Seconds
- Foojay Podcast #1: Hello Foojay.io!
- The Lifecycle of a Security Vulnerability
- Do You Really Need Kubernetes?
- JDKMon: Your Friendly JDK Distribution Updater
- Soprano ofNullable stream Java Challenge
- Troubleshooting Java Processes Running on Your Machine
- JReleaser 0.5.0 Released!
- Why Kubernetes Is The Best Technology For Running A Cloud-Native Database
- Method Reference VS Lambda Java Challenge
- Java in Education: Combining Java with Raspberry Pi and the Pi4J Library
- Simplify Protocol Refactoring
- Optimizing Relational Database Access
- JMC 8.0.1 Released!
- Creating a JavaFX World Clock from Scratch (Part 6)
- How to Create Mobile Apps with JavaFX (Part 3)
- Debugging Java on the Command Line
- OpenJDK and the Future of Production Profiling
- Introduction to New AutoScale Feature Available in Payara Server
- Primitive Set Operations in Eclipse Collections — Part 2
- BlockHound: How It Works
- Apache Cassandra 4.0: Taming Tail Latencies with Java 16 ZGC
- New Book: "Taming Thymeleaf"
- JavaFX: June 2021 Community Update
- New JVM Ecosystem Report 2021 Has Arrived!
- How to Create Mobile Apps with JavaFX (Part 2)
- Game Development Basics with FXGL
- Jakarta EE Application Deployment to Kubernetes Cluster in Jelastic PaaS
- Concurrency in Java (and How it Compares with Other Modern Programming Languages)
- Hidden Dracula Polymorphism Java Challenge
- How to Create Mobile Apps with JavaFX (Part 1)
- Java Encryption and Hashing
- Foojay Status Report: January - June 2021
- Ken Fogel: "What Are You Leaving Behind?"
- Avoid Multithreading Bugs Using Immutable Java 16 Records
- JavaFX: Gluon Status Update, Dual Screen on Raspberry Pi Sample, IntelliJ New JavaFX Project Wizard
- New Java/JavaFX Library FXSkins Released
- JEP 411: What it Means for Java's Security Model and Why You Should Apply the Principle of Least Privilege
- Open Source Tools as an Opportunity for SMEs to Use AI?
- Book Review: "Java by Comparison"
- Asynchronous CompletableFuture San Francisco Adventure Java Challenge
- JReleaser 0.4.0 Released!
- Creating a Simple Spring Boot Application in IntelliJ IDEA
- Automatic WildFly Clustering in Managed Domain Mode and Scaling inside Containers
- Interviews with Robert Savage and Johan Vos on the State of Java on Raspberry Pi
- Hacking Third-Party APIs on the JVM
- Getting Started with Jakarta EE 9: Context And Dependency Injection (CDI)
- Jakarta EE 9.1 Released!
- FXGL Game Engine 11.16 Release
- Type Erasure Generics Java Challenge
- The Principle of Least Privilege and How JEP 411 Will Have a Negative Impact on Java Security
- Querying Your In-Memory-Data-Grid: Why and How?
- 🚀 Demystifying JVM Memory Management
- Creating a JavaFX World Clock from Scratch (Part 5)
- Controlling an LCD Display with Spring and Thymeleaf on the Raspberry Pi
- VS Code: Getting Better and Better for Java
- Map, Equals, Hashcode Java Challenge
- Sanitize All Input!
- Teeing: Hidden Gem in the Java API
- 7 Functional Programming Techniques in Java: A Primer
- Optional takeWhile dropWhile Java Challenge
- A Real-World Example of a Stream Collector
- Preventing YAML Parsing Vulnerabilities in Java
- Payara Services Wins Prestigious Queen’s Award!
- Elastic JVM: Configuring G1 GC for Automatic Vertical Memory Scaling
- Why Java Developers Continue to Rely on Jakarta EE
- Creating a Snake Game with JavaFX FXGL in Three Pair-Programming Sessions
- New Book: "Java Challengers"
- A Close Look at Kotlin's Delegation
- New to Java? Some Resources
- Fix Java Security Issues While Coding in IntelliJ IDEA
- Java Garbage Collection Types and Settings Customization via Jelastic PaaS
- Beginning JavaFX Applications with IntelliJ IDE
- GoF Design Patterns Using Java - Part 01
- An Example of Overengineering: Keep it WET
- JavaFX Running in Kiosk Mode on the Raspberry Pi
- Modern JavaFX Game Development with FXGL: Pong (Simple)
- 2021 Jakarta EE Developer Survey
- Getting Started with Jakarta EE 9: How to Create a REST API with Jakarta EE 9
- Hazelcast, from Embedded to Client-Server
- Namespace Shadowing (a.k.a. “Dependency Confusion”) Attack
- Building Microservices with Spring Boot Fat (Uber) Jar
- New Java Welcome Page for VS Code
- IntelliJ IDEA Changelists and Git Staging
- 8 Best Practices to Prevent SQL Injection Attacks
- Your own custom Spring Data repository
- Deep Dive Into Multi-Threading in Java
- Jenkins Cluster for Continuous Integration and Delivery (CI/CD) inside Jelastic PaaS
- Creating a JavaFX World Clock from Scratch (Part 4)
- Changing a Field's Type in Recent JDKs
- Getting Started with Jakarta EE 9: Hello World
- Java 16 and IntelliJ IDEA
- Creating a JavaFX World Clock from Scratch (Part 3)
- Java Ecosystem Survey 2021
- Java 16 Records: Data Carrier Classes
- Keeping Pace with Java Using Eclipse IDE
- A (Definitive?) Guide to LazyInitializationException
- Fabiane Bizinella Nardon Talks about Machine Learning and Disruptive Data Science
- Billion Events Per Second with Millisecond Latency: Streaming Analytics at Giga-Scale
- DevOps 101 Part III: Package Management
- Spring Boot and Java 16 Records
- Kicking Spring Native's Tires
- Secure Code Review Best Practices (Part 2)
- DevOps 101 Part II: Container Registries
- Highlights of New JEPs in Java 16
- Java Testing with VS Code
- Custom Controls in JavaFX (Part VII)
- Secure Code Review Best Practices (Part 1)
- Embracing JVM unified logging (JEP-158 / JEP-271)
- DevOps 101 Part I: CI/CD
- How to Use Eclipse Transformer to Convert a 3rd Party Library to the New Jakarta Namespace
- "Foojay Announces Initial Companies Making Up Its Advisory Board" -- SD Times
- Custom Controls in JavaFX (Part VI)
- "Virtual Tour Is the Biggest Project Yet for the New Java Community Platform, Foojay" -- DZone
- Running Spring Boot Applications on OpenShift
- Virtual Tour Is Biggest Project Yet For New Java Community Platform Foojay
- Evolution of Java Memory Architecture (Post Java 7.0)
- Monitoring Across Frameworks: Spring Boot, Micronaut, Quarkus, and Helidon
- Introduction to JVM Unified Logging (JEP-158 / JEP-271)
- Deploying Spring Boot Applications on Kubernetes
- Custom Controls in JavaFX (Part V)
- Evolution of Java Memory Architecture (Pre Java 8.0)
- Towards Continuous Performance Regression Testing
- Delegation vs. Inheritance in Graphical User Interfaces
- Modules, Modules, Everywhere!
- Much Ado About Nothing in Java
- Payara Platform 2021 Survey
- Optional.stream()
- Schedule for Foojay Virtual JUG Tour
- Custom Controls in JavaFX (Part IV)
- Demystifying Google Container Tool, Jib: Java Image Builder
- MicroProfile OpenTracing with Jaeger
- Improved JFR Allocation Profiling in JDK 16
- Java Development with VS Code on the Raspberry Pi
- Custom Controls in JavaFX (Part III)
- Safe Writing to Files in IoT and Industrial Systems
- JCStress: Eliminate the Nightmare of Debugging Java Concurrency Bugs
- Generating Code with IntelliJ IDEA
- The SolarWinds Hack for Java Developers
- Welcome to VS Code for Java
- Custom Controls in JavaFX (Part II)
- "Foojay: A Place for Friends of OpenJDK" -- ADT Magazine
- OIDC Client with Mutual TLS Client Authentication
- Getting Started with DevSecOps
- Migrating Browser-Based Java Applets to IcedTea-Web using JNLP
- Creating Self-Contained Executable JARs
- Custom Controls in JavaFX (Part I)
- Azul, Datadog, DataStax, JFrog, Payara, and Snyk Form Inaugural Foojay Advisory Board
- Explaining Java Deserialization Vulnerabilities (Part 2)
- Creating a Kubernetes Operator in Java
- Virtual Foojay JUG Tour
- IntelliJ IDEA: Beyond The Basics
- A Compendium of 2021 Java & OpenJDK Predictions
- Explaining Java Deserialization Vulnerabilities (Part 1)
- Vert.x Example on the Raspberry Pi with a Virtual Potentiometer
- CI/CD Workflow for Spring Boot Applications on Kubernetes via Skaffold
- High Performance Rendering in JavaFX
- Hacking Java XML Input via External Entity Injection
- Preview of January 2021 OpenJDK Update Release
- 3 Ways to Refactor Your Code in IntelliJ IDEA
- Device Monitoring with JavaFX and FXGL
- How To Bring Your Java Microservices To The Cloud
- Friends of OpenJDK Schedule at FOSDEM 2021
- Java Syntax Puzzlers
- Local Variable Type Inference: Declare Var, Not War
- Java Predictions for 2021
- Containerizing Spring Boot Applications with Jib
- Java Predictions for 2021: Jakarta EE
- Java Predictions for 2021: Raspberry Pi
- 5 Tips to Create Secure Docker Images for Java Applications
- Creating a JavaFX World Clock from Scratch (Part 2)
- Light Up your Christmas Tree with Java and Raspberry Pi
- Avoiding NullPointerException
- Cloud Myth: Ahead of Time Compilation Will Save You Money
- Summer with Covid-19 in Australia, New Zealand and Polynesia
- Friends of OpenJDK at FOSDEM 2021
- Run WebSphere Liberty and Open Liberty on OpenShift
- How & When to Use JDK Flight Recorder in Production
- Creating a JavaFX World Clock from Scratch (Part 1)
- Separate Covid-19 Waves in Europe and South America
- Immutable Collections in Java with Sealed Types
- Creating CAD Applications with Java and JavaFX
- Minimizing Security Risks in Java Application Development
- Primitive Set Operations in Eclipse Collections
- Where is the 2nd Wave in Russia and China?
- What are Hidden Classes in Java 15?
- MicroProfile Metrics with Prometheus and Grafana
- Why I Love IntelliJ IDEA for Java Development
- The Second Wave Breaks in Europe
- Apple Silicon with Zulu OpenJDK and IntelliJ IDEA
- Native Applications for Multiple Devices from a Single JavaFX Project with Gluon Mobile and GitHub Actions
- IntelliJ IDEA Made Me Lazy
- Use Query Parameterization to Prevent Injection
- COVID-19 Time Series Analysis with Software EKG
- Announcing the Astra Service Broker: Tradeoff-Free Cassandra in Kubernetes
- Control JFR Programmatically
- 7 Ways to Contribute to OpenJDK
- Starting a JavaFX Project with Gluon Tools
- Run Oracle WebLogic Server on Azure Kubernetes Service
- For the Record!
- Getting Started with FXGL Game Development
- Avoid Java Serialization!
- Getting Started with Payara Server
- Continuous Production Profiling and Diagnostics
- How to Configure Your Java XML Parsers to Prevent XXE Attacks
- Analyze JFR Recordings
- OpenJDK, JDKs and Every Java Acronym in Between
- Securing Microservices with Auth0 and MicroProfile in Kubernetes
- "Foojay - All About Java and the OpenJDK" -- I Programmer
- Get Started with JDK Flight Recorder
- Spring Boot: Strategy Design Pattern - Convenience and Limitation
- OpenJDK vs. OpenJFX Release Cycles
- Handling JDK & GC Options Dynamically in Elasticsearch
- JavaFX 3D: A Look Back Through History & Some Experiments
- Live Templates in IntelliJ IDEA
- Evolution of Microservices
- Peter Lawrey Talks about Low-Latency, High-Performance Java
- Building OpenJDK from GitHub Sources on 64-bit Raspberry Pi
- Fixing Vulnerabilities in Maven Projects
- JDK 15 Hidden Classes
- What's New in the Payara Platform October Release?
- Cross-Platform Development in Java with Gluon and GraalVM (Part 2)
- Cross-Platform Development in Java with Gluon and GraalVM (Part 1)
- Faster & More Reliable 64-bit OS on Raspberry Pi 4 with USB Boot
- JDK 15 Sealed Classes
- Why You Should Join EclipseCon Community Day
- Quick Start with Machine Learning in Java
- Electronics & Micronaut Velocity with Raspberry Pi
- The Reason Java Was Invented
- New to IntelliJ IDEA? Me Too!
- 5 Minute Azure Survey: Java EE, Jakarta EE, and MicroProfile
- Electronics & Quarkus Qute on Raspberry Pi
- Getting Started with Babel for Java
- Timing Differences Between Compiling .java Code Files and Executing .class Bytecode Files
- WebLogic on Azure Virtual Machines Major Release Available
- Learning Java as a First Language
- Spectacular Java Projects on the Raspberry Pi
- A Simple Service with Spring Boot
- Azul Zulu OpenJDK 15 on Raspberry Pi
- Startup Speed of Spring and Quarkus JARs on the Raspberry Pi
- What's New in Java 15?
- What is JVM Bytecode?
- What's New in JavaFX 15?
- Useful JVM Options: Heap Sizing
- Redesigned Foojay Home
- Running Single-File Java Source Code Without Compiling (Part 2)
- Why the JVM Is a Brilliant Platform for New Programming Languages
- Running Single-File Java Source Code Without Compiling (Part 1)
- Interview: Frank Delporte, Foojay Raspberry Pi Community Manager
- Java 11 & JavaFX 11 on Raspberry Pi with ARMv6 Processor
- Introducing JmFrX: A Bridge From JMX to Java Flight Recorder
- Installing Java and JavaFX on the Raspberry Pi
- Interview: Java Command Line Switches
- 10 Basic Questions About PDF Files for Java Developers
- Performance: Stream.concat vs. New ArrayList
- Monitoring REST APIs with Custom JDK Flight Recorder Events
- Interview: Java Version Almanac
- Container Awareness for Java Developers
- A JavaFX App on ZuluFX in 60 Seconds
- Why Java, C, and Python Are Today's Most Utilized Programming Languages
- A Closer Look at JFR Streaming
- Is Java Still an 'Emerging Technology'?
- Sub-10 ms Latency in Java: Concurrent GC with Green Threads
- From Azure Active Directory via OpenID Connect to Open Liberty and Java
- Fantastic JVMs and Where to Find Them
- Highlights of Changes to the Core Java Platform
- Performance of Modern Java on Data-Heavy Workloads: The Low-Latency Rematch
- How does Java handle different Images and ColorSpaces – Part 4
- How does Java handle different Images and ColorSpaces – Part 3
- How does Java handle different Images and ColorSpaces – Part 2
- How does Java handle different Images and ColorSpaces – Part 1
- Performance of Modern Java on Data-Heavy Workloads: Batch Processing
- Performance of Modern Java on Data-Heavy Workloads: Real-Time Streaming
- Fun with Flags: My Top 10 Resources for JVM Flags
- JDK14: New Features and Enhancements
- Dashboard for OpenJDK Update Release Details
- foojay: A Place for Friends of OpenJDK