Spring I/O 2025 was a great experience! It is an extremely well-organized conference with an awesome community. It was my second time as a speaker, and I will definitely send talk abstracts to the upcoming editions as well. It does not hurt that it is organized in Barcelona in May. A very nice time of the year to visit the city. My session, What Every Spring Developer Should Know About…
Welcome to issue number two hundred and eighty-two of Hashtag Jakarta EE! I have just returned from Spring I/O 2025 in Barcelona. A write-up from this conference will follow shortly. This was my last conference in May, so I have a couple of weeks break before the next one, which will be JJUG CCC 2025 Spring in Tokyo. I have been a part of the Oracle ACE Program as an Oracle ACE Pro…
Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS The #347 airhacks.fm episode with Richard Bair (@RichardBair) about: enterprise use cases with opensource, pure Java blockchain (Hashgraph) is available for download.
Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS The #346 airhacks.fm episode with Juan Fumero (@snatverk) about: TornadoVM programming model, hardware reconfiguration, LLM inference, tensor types, and future integration possibilities is available for download.
Hey guys! How’s it going? Another six months are over and you might wonder what the old shaggy prepared this time? No wonder, it certainly is another OpenJDK contribution! This time, it speeds up reading from CharSequence, and it will allow faster Write::append. Never heard of CharSequence? Well, it’s the common interface of String, StringBuilder, CharBuffer, and quite some custom…
In my previous article, I discussed how Helidon integrates with LangChain4J. While the article provided a solid foundation, some readers pointed out the lack of a complete, hands-on example. This time, we’ll fix that by building a fully functional, practical AI-powered Java application. We’ll create the Helidon Assistant — a chatbot with a web UI trained to answer questions about the…
Jakarta EE applications can achieve better performance with a layered caching setup that combines client-side and server-side caching [1]. Caching Methods Caching is a powerful technique used to improve the performance and scalability of applications. By storing frequently accessed data closer to where it’s needed, caching can significantly reduce latency and system load. Let’s take a look…
Database operations are a very critical part of most applications in regards of performance. There are multiple reasons why database operations can significantly contribute to lower performance: The database often runs on a remote server, slowing down communication with the database and the data transfer Establishing individual connections to a database can take a significant portion of…
April was a month of rich fishing grounds: we reeled in top-tier blog posts, made waves at international conferences, and navigated exciting new waters in both AI and Java development. From sharpening your developer toolkit to charting safer courses for application security, we've caught some prize-worthy resources you won't want to throw back. Drop anchor and take a look at the…
In this article we will learn how to provision a WildFly Server using the JBang scripting tool. Starting from a basic example using a REST endpoint, we will show how to enable additional features on the application server with the WildFly Glow tooling. Why Run WildFly in your Java scripts? WildFly is an application server ... Read more The post How to run WildFly applications with JBang appeared…
March was quite eventful indeed! ✨ This month, our Payarans were on the move — bringing their energy, insights, and expertise to not one, but two major Java conferences: Devnexus and JavaOne. With expert-led talks, exciting conversations at our booths, and the opportunity to meet the community in person, it was a month to remember. But that’s not all! We’re not slowing down —…
Not too long ago, I upgraded my computer and got a new Lenovo ThinkPad X1 Carbon (a great machine so far!). Since I was accustomed to working on a gaming rig (Ryzen 7, 64GB RAM, 4TB) that I had set up about five years ago, I completely missed the Secure Boot and TPM trends—these weren’t relevant for my fixed workstation. However, my goal with this new laptop is to work with both Linux and…
Introduction The rise of Large Language Models (LLMs) has opened new doors for AI-powered applications, enabling dynamic interactions, natural language processing, and retrieval-augmented generation (RAG). However, integrating these powerful models into Java applications can be challenging. This is where LangChain4J comes in – a framework designed to simplify AI development in Java. To…
Devnexus 2025 will be held Tuesday-Thursday, March 4-6, 2025 at the Georgia World Congress Center in Atlanta, Georgia. Members of the Jakarta EE Ambassadors will be in attendance to deliver presentations on Jakarta EE. On March 4, developers will be able to choose from five workshops: AI-Driven Development: Enhancing Java with the latest AI Innovations by Brian Benz Developer to…
Most Hibernate performance issues are caused by fetching related entities you don’t use in your business code. To make it even worse, this happens automatica...
We’re excited to announce that accounts.eclipse.org will migrate from Drupal 7 to Drupal 10 on January 19, 2025. This is a significant milestone in our ongoing effort to modernize the Eclipse Foundation’s web infrastructure, following the successful migration of the Project Management Infrastructure (PMI) earlier this year. This migration aligns with our plans that we outlined in last year’s…
As part of our migration to Drupal 10, we’ve decided to discontinue support for Gravatar on sites such as accounts.eclipse.org, projects.eclipse.org, blogs.eclipse.org, marketplace.eclipse.org, and newsroom.eclipse.org. This change enhances privacy compliance by giving users more control over their data and ensures a more consistent experience across many of our web properties. Why Are We…
The post Date and Time Mappings with Hibernate and JPA appeared first on Thorben Janssen. Databases support various data types to store date and time information. The most commonly used ones are: You can map all of them with JPA and Hibernate. But you need to decide to which Java type you want to map your database column. The Java language supports a bunch of classes to represent date and... The…
In this tutorial I want to consolidate some practical ideas regarding OpenTelemetry and how to use it with Spring Boot. This tutorial is composed by four sections OpenTelemetry practical concepts Setting up an observability stack with OpenTelemetry Collector, Grafana, Loki, Tempo and Podman Instrumenting Spring Boot applications for OpenTelemetry Testing and E2E sample By the end of the…
This tutorial provides an overview of some of the new features that are available in the upcoming Jakarta Persistence API 3.2, which is part of Jakarta EE 11 bundle. Jakarta Persistence defines a standard for management of persistence and ORM Java(R) Enterprise environments. If you are new to Jakarta Persistence API we recommend checking this ... Read more The post What is new in Jakarta…
The 24.0.0.12-beta release enhances inbound SOAP message validation in XML Web Services to simplify message debugging and make your web services and clients more resilient. See also previous Open Liberty beta blog posts. Fine-tuning XML Web Services inbound SOAP message validation Open Liberty’s XML Web Services features now support fine-grained message validation for inbound SOAP…
There are many misconceptions for microservices, which have been around for over a decade. Some people wonder whether microservices are going to die, especially in an IT industry that is quickly moving toward the cloud. With serverless becoming a hot topic, will microservices survive in the serverless era? In this blog, take a step back and rethink microservices. We start with the history of…
Introduction Concurrency has always been a cornerstone of Java, but as applications scale and demands for high throughput and low latency increase, traditional threading models show their limitations. Project Loom and its groundbreaking introduction of virtual threads redefines how we approach concurrency in Java, making applications more scalable and development more straightforward. In this…
Hi guys, how’s it going? Long time no see! In fact, I had been very silent in the past months, and as you could imagine, it has a reason: I just had no time to share all the great stuff with you that I was involved with recently. In particular, creating video content for Youtube is such time-consuming that I decided to stop with that by end of 2023, at least “for some time”, until my personal…
Rising Momentum in Enterprise Java: Insights from the 2024 Jakarta EE Developer Survey Report The seventh annual Jakarta EE Developer Survey Report is now available! Each year, this report delivers crucial insights into the state of enterprise Java and its trajectory, providing a comprehensive view of how developers, architects, and technology leaders are adopting Java to meet the…
The Generational Z Garbage Collector (ZGC) The Generational Z Garbage Collector (GenZGC) in JDK 21 represents a significant evolution in Java’s approach to garbage collection, aiming to enhance application performance through more efficient memory management. This advancement builds upon the strengths of the Z Garbage Collector (ZGC) by introducing a generational approach to garbage collection…
Cross-Context Dispatch reintroduced to Jetty-12 With the release of Jetty 12.0.8, we’re excited to announce the (re)implementation of a somewhat maligned and deprecated feature: Cross-Context Dispatch. This feature, while having been part of the Servlet specification for many years, has seen varied levels of use and support. Its re-introduction in Jetty 12.0.8, however, marks a significant…
Jakarta REST provides a Client API, implemented by Jersey Client. The default implementation is based on the Java HttpUrlConnection. Unfortunately, the HttpUrlConnection supports only HTTP methods defined in the original HTTP/1.1 RFC 2616. It will never support for instance HTTP … Continue reading →
Introduction In my previous article, we’ve seen what Virtual Threads (VTs) are, how they differ from Platform Threads (PTs), and how to use them with Helidon 4. In simple terms, VTs bring in a new concurrency model. Instead of using many PTs that can get blocked, we use a few of them that hardly ever […]
This blog aims at giving some pointers in order to address the challenge related to the switch from `javax` to `jakarta` namespace. This is one of the biggest changes in Java of the latest 20 years. No doubt. The entire ecosystem is impacted. Not only Java EE or Jakarta EE Application servers, but also libraries of any kind (Jackson, CXF, Hibernate, Spring to name a few). For instance, it took…
Jersey is using JDK HttpUrlConnection for sending HTTP requests by default. However, there are cases where the default HttpUrlConnection cannot be used, or where using any other HTTP Client available suits the customer’s needs better. For this, Jersey comes with … Continue reading →
Now that Jetty 12.0.1 is released to Maven Central, we’ve started to get a few questions about where some artifacts are, or when we intend to release them (as folks cannot find them). Things have change with Jetty, starting with the 12.0.0 release. First, is that our historical versioning of <servlet_support>.<major>.<minor> is no longer being used. With Jetty 12, we are now using a more…
I recently became interested in Helidon as part of my investigations into Java Loom. Indeed, version 4 is natively based on Virtual Threads. Before going any further, let’s introduce quickly Helidon. Helidon is an Open Source (source on GitHub, Apache V2 licence) managed by Oracle that enables to develop lightweight cloud-native Java application with fast […]
The results of the 2023 Jakarta EE Developer Survey are now available! For the sixth year in a row, we’ve reached out to the enterprise Java community to ask about their preferences and priorities for cloud native Java architectures, technologies, and tools, their perceptions of the cloud native application industry, and more. From these results, it is clear that open source cloud native Java…
Looking at the web, we don’t see many articles talking about Contexts Dependency Injection’s best practices. Hence, I have made the decision to discuss the utilization of Contexts Dependency Injection (CDI) using best practices, providing a comprehensive guide on its implementation. The CDI is a Jakarta specification in the Java ecosystem to allow developers to use dependency injection,…
The Jakarta EE 2023 Developer Survey is now open! It is that time of the year: the Jakarta EE 2023 Developer Survey open for your input! The survey will stay open until May 25st. I would like to invite you to take this year six-minute survey, and have the chance to share your thoughts and ideas for future Jakarta EE releases, and help us discover uptake of the Jakarta EE latest…
In this post, I will talk to you about what the Apache Camel is. It is a brief introduction before I starting to post practical content. Thus, let’s go to understand what this framework is. Apache Camel is an open source Java integration framework that allows different applications to communicate with each other efficiently. It provides a platform for integrating heterogeneous software…
Community Day at EclipseCon 2022 was held in person on Monday, October 24 in Ludwigsburg, Germany. Community Day has always been a great event for Eclipse working groups and project teams, including Jakarta EE/MicroProfile. This year was no exception. A number of great sessions were delivered from prominent folks in the community. The following are the details including session materials. The…
An impression of JFall by yours truly. keynoteSold out! Packet room! Very nice first keynote speaker by Saby Sengupta about the path to transform.He is a really nice storyteller. He had us going. Dutch people, wooden shoes, wooden hat, would not listen Saby lol Get the answer to three why questions. If the answers stop after the first why. It may not be a good idea. This great first…
The results of the 2022 Jakarta EE Developer Survey are very telling about the current state of the enterprise Java developer community. They point to increased confidence about Jakarta EE and highlight how far Jakarta EE has grown over the past few years. Strong Turnout Helps Drive Future of Jakarta EE The fifth annual survey is one of the longest running and best-respected surveys of its…
The Jakarta EE Ambassadors are thrilled to see Jakarta EE 10 being released! This is a milestone release that bears great significance to the Java ecosystem. Jakarta EE 8 and Jakarta EE 9.x were important releases in their own right in the process of transitioning Java EE to a truly open environment in the Eclipse Foundation. However, these releases did not deliver new features. Jakarta EE 10…
Jakarta EEエコシステムは、さまざまなライブラリ、フレームワーク、サーバ、ツールをjavax名前空間からjakarta.ee名前空間に移行することに尽力してきました。この作業は、Jakarta EE 10の今後のリリースで本質的に完了します。JakartaEEの開発者は、各カテゴリーに幅広い選択肢があり、優れた選択肢を提供します。
How make java code with reflections more stable? Unit tests can help with this problem. This article introduces annotations @CheckConstructor, @CheckField, @CheckMethod to create so unit tests automatically
Getting started with Jakarta EE just became even easier! Get started Java EE /Jakarta EE - Initializr Hot new Update!Moved from the Apache 2 license to the Eclipse Public License v2 for the newest version of the archetype as described below.As a start for a possible collaboration with the Eclipse start project. New Archetype with JakartaEE 9 JakartaEE 9 + Payara 5.2022.2 + MicroProfile 4.1…
2022年Jakarta EE開発者アンケートの所要時間は、6分未満です。しかしながら、皆さんのご意見は非常に重要です。
FOSDEM took place February 5-6. The European based event is one of the most significant gatherings worldwide focused on all things Open Source. Named the “Friends of OpenJDK”, in recent years the event has added a devroom/track dedicated to Java. The effort is lead by my friend and former colleague Geertjan Wielenga. Due to the pandemic, the 2022 event was virtual once again. I delivered a couple…
Infinispan 10+ uses Log4j version 2.0+ and can be affected by vulnerability CVE-2021-44228, which has a 10.0 CVSS score. The first fixed Log4j version is 2.15.0. So, until official patch is coming, - you can update used logger version to the latest in few simple steps Download Log4j version 2.15.0: https://www.apache.org/dyn/closer.lua/logging/log4j/2.15.0/apache-log4j-2.15.0-bin.zip Unpack…
Specification JPA 2.2/Jakarta JPA 3.0 provides for several methods to select data from database. In this article we research how these methods affect on performance
In the previous post, we saw how to use the built-in ‘tomcat-users.xml’ identity store with Apache TomEE. While this identity store is inherited from Tomcat and integrated into Jakarta Security implementation in TomEE, this is usually good for development or simple deployments, but may appear too simple or restrictive for production environments. This blog will focus on how to implement your own…
New podcast episode with Adam Bien & David Blevins. Apple and EJB, @ApacheTomEE, @tomitribe, @JakartaEE, the benefits of code generation with bash, and over-engineering”–the 156th http://airhacks.fm The post #156 Bash, Apple and EJB, TomEE, Geronimo and Jakarta EE appeared first on Tomitribe.
While working on Jakarta EE 10 certification (See announcement Apache Tomee Jakarta EE certified after 10 years, Apache TomEE implemented Jakarta Security specification. Currently, there is only one implementation used in Glassfish and used by all the other vendors for Jakarta Security. In TomEE, we decided to create an alternative to bring some diversity, and have an Apache implementation. What…
There are many blogs explaining how to get Jakarta Security on Tomcat using all sorts of libraries and wiring everything manually. So many opportunities to get it wrong, if you are evaluating or currently using Apache TomEE. In TomEE, the good news is that, like JAX-RS, CDI or Bean Validation, Jakarta Security is out of the box ready to be used like Servlet, and CDI for example. This blog is a…
We are extremely excited to spread the word that Apache TomEE 9.0.0-M7 has reached Jakarta EE 9.1 Web Profile certification. Speaking with our Apache-contributor hats on, this is not just our first certification in 10 years, but we are doubly proud Apache TomEE is on the list of certified servers on the day of the Jakarta EE release. Moreover, after 3 years of behind-the-scenes work, we’re very…
Wildfly provides great out of the box load balancing support by Undertow and modcluster subsystems Unfortunately, in case HTTP headers size is huge enough (close to 16K), which is so actual in JWT era - pity error happened: ERROR [io.undertow.proxy] (default I/O-10) UT005028: Proxy request to /ee-jax-rs-examples/clusterdemo/serverinfo failed: java.io.IOException:…
Jakarta One 2020, held on December 8th, 2020, gathered industry users and Java communities to share and learn the latest Java enterprise-related technologies. Jakarta EE 9, officially announced in November 2020, that they have created a lot of momentum to keep the conversation going in terms of lessons learned, roadmaps, and best practices. Rafael Guimares, and I, had the opportunity to present…
El 12 de Octubre del 2020 se llevó a cabo la primera edición virtual del JakartaOne en Español, el evento reunió a más de 500 asistentes y 9 comunidades de Java de habla hispana. La agenda del evento ofreció a los asistentes y comunidades una amplia gama de temas relacionados a las aplicaciones Java Empresarial, nubes nativas, micro servicios entre otros. En esta edición tuve la oportunidad de…
I’d like to share with everyone a system we’ve set up to help projects get faster TCK results, starting of course with Apache TomEE. https://tck.work/tomee/projects We’ve had this system for a while, but were unable to open access due to the legal restrictions around access to the TCK and results. Now that all of this is public we can finally make it available. This installation is dedicated to…
¡El informe resumido del evento JakartaONE Español 2020 es una maravillosa declaración de una actividad comunitaria de código abierto con el corazón de voluntarios! Comité de JakartaONE Español Alberto, Carlos, Eudris, Jonathan & Hillmer gracias por decidir ser administradores formidables cuyas acciones continuamente inspiraron y reflejaron las mejores características que el código abierto…
About one month ago I had the pleasure to announce the release of the second edition of my book, now called “Jakarta EE Cookbook”. By that time I had recorded a video about and you can watch it here: And then came a crazy month and just now I had the opportunity to write a few lines about it! So, straight to the point, what you should know about the book (in case you have any interest in…
The JDK Flight Recorder (JFR) is an invaluable tool for gaining deep insights into the performance characteristics of Java applications. Open-sourced in JDK 11, JFR provides a low-overhead framework for collecting events from Java applications, the JVM and the operating system. In this blog post we’re going to explore how custom, application-specific JFR events can be used to monitor a REST…
Record types are one of the most awaited features in Java 14; they promise to "provide a compact syntax for declaring classes which are transparent holders for shallowly immutable data". One example where records should be beneficial are data transfer objects (DTOs), as e.g. found in the remoting layer of enterprise applications. Typically, certain rules should be applied to the attributes of…
As part of the Jakarta EE Quickstart Tutorials on YouTube, I’ve now created a five-part series to create a Jakarta EE CRUD API. Within the videos, I’m demonstrating how to start using Jakarta EE for your next application. Given the Liberty Maven Plugin and MicroShed Testing, the endpoints are developed using the TDD (Test Driven Development) technique. The following technologies are used within…