I first wrote this article for the Java Advent calendar 2020. I then copied it to my own blog. Christmas is coming! Like every year, Santa needs to schedule its presents delivery. Can you imagine? Millions of (good) children will receive a present on the night of the 24th of December. To achieve this prowess, Santa needs a bit of technical help to schedule the … Continue reading Merry Chistmas And Happy Fallback With Microprofile
It’s been a while since I haven’t blogged… but that’s because I was busy writing two books on Quarkus! When Quarkus was announced in November 2018 I was very enthusiastic with what I saw. It was the beginning of Quarkus, but it was already promoting developer’s joy (hot reload, easy configuration, etc.), Cloud-Native, speed, small… but what I liked the most was the fact that … Continue reading Two Quarkus Books for Christmas
This blog post follows the first one I wrote about Configuring A Quarkus Application. So, if you want to know how to configure a Quarkus application using a Unified Configuration (application.properties file), Microprofile Config or system properties, please refer to this previous post. In this blog post I will show you how to use Profiles in Quarkus. Use Case I’ll use the same example as … Continue reading Configuring A Quarkus Application With Profiles
In this blog post I’ll show you how to configure a Quarkus application using the specific application.properties file as well as the Microprofile Config API (check my other post for configuring with profiles). To break it into more details you will learn: How to configure a Quarkus application and have separate values for development and test How to use Microprofile Config to inject values How … Continue reading Configuring A Quarkus Application
JHipster is a great way to bootstrap your application. Your app can be a monolith or be split into several microservices, use JWT or OAuth2, packaged with Docker, deployed on a cloud provider… JHipster is there to handle the heavy technical complexity. Great ! But… when it comes to choosing an item from a combobox, JHipster is not that great. In this post I will … Continue reading JHipster, Angular, PrimeNG and AutoComplete
I’ve recently posted a Tweet about my day to day life. This Tweet said “I’ve reached a point where I can test Spring code in a couple of minutes, and Java EE code in a couple of hours :o(“ I was a bit surprised to read some reactions. In fact, some people asked me to explain this Tweet a bit more… so here I am. … Continue reading Java EE vs Spring Testing
AsciiDoc is a great way to write technical documentation. It is text based, can be committed and versionned in your VSC with your project, has a rich syntax, has a huge ecosystem, integrates with several tools (such as PlantUML that I love) and, if there is still something missing, you can use extensions or create your own. And if you use the asciidoctor-maven-plugin to automatically generate … Continue reading Configuring the AsciiDoctor Maven Plugin
With my friend Sebastien Pertus, we decided to create a 3 hours university on “how an Angular front-end could communicate with an Enterprise Java Micro Profile back-end”. So we spent a few months organizing the slides and the code, giving the talk at several conferences and JUGs…. and here are the videos and slides finally public. In this talk, I play my role (a back-end … Continue reading When Enterprise Java Micro Profile meets Angular
The one thing I hate the most is wasting time in administrative tasks. When you have a company, deal with customers, invoice, pay taxes, sign contracts, etc. you end up spending a lot of time doing admin instead of your real work. What do you do? Well, you don’t have the choice. At the beginning it’s so scary, that you print paper, sign it with … Continue reading Automating Administrative Tasks with iText and DocuSign
In this blog post I’ll show you how to use the JJWT library to issue and verify JSon Web Tokens with JAX-RS endpoints. The idea is to allow an invocation when no token is needed, but also, be able to reject an invocation when a JWT token is explicitly needed. Let’s say we have a REST Endpoint with several methods: methods that can be invoked directly, and methods that … Continue reading Securing JAX-RS Endpoints with JWT
Application Servers have changed a lot: consuming less memory, being faster at startup time… Now it’s time to change the way we package our applications: from Ears, to Wars, and now to executable Jars. This is what I explained in this “Just Enough App Server” talk I gave at few conferences lately. So if you want to know more about Application Servers today, you can watch … Continue reading Just Enough App Server with WildFly Swarm
The developers’ world is a mixture of evolutions and reinventing the wheel. When I was doing EJBs 1.0 back in 1998, I was doing Micro Services. But I had to wait 2014 for someone to give it a name, and 2016 to see it officially arriving in Enterprise Java. So here we are: a Micro Profile has been announced for Enterprise Java. What? A Micro Profile! For … Continue reading “Micro Profile in Enterprise Java” Announced !
Updated Thanks for your comments. I’ve added Undertow to the test ( “Servlet-Only Distribution” on the WildFly download page), corrected some mistakes, but more important, I’ve changed the memory benchmark: I now take a memory usage measure at startup, I then perform GC and wait a bit for memory to stabilize. This gives a nice min and max memory usage. Damn, I’ve been waiting so long to … Continue reading O Java EE 7 Application Servers, Where Art Thou?
Are you going to JavaOne? Well I’m not! But instead I’ll be doing some talks in October and November in Europe and Morocco. Four years ago I toured central Europe giving CDI talks. Next week I’ll start another tour with CDI and Forge talks. Here is my schedule : Tuesday 20th of October – JUG Frankfurt (Map) : Talk on JBoss Forge at 6:30pm. This is mostly … Continue reading CDI and Forge Talks in Europe and Morocco
If you are interested in JBoss Forge, you should check out this 50 minutes talk I gave at Devoxx UK. You can also get the slides and the code. Talk in English Slides 50 new features of Java EE 7 in 50 minutes from Antonio Goncalves Continue reading 50 minutes to develop a full Java EE application with Forge? Is that all?
Who cares about toString performance? Nobody! Except when you have huge amount of data being processed in a batch that does plenty of logging using toString . Then, you investigate why it’s slow, realize that the toString method is mostly implemented using introspection and can be optimized. But first, let’s have a look at the Javadoc to remember what a Object.toString should do: “returns a textually representation … Continue reading Who Cares About toString Performance?
If you want to learn about CDI you can read the 4 articles I wrote in the Java Magazine : Part I : Using strong typing in dependency injection (May/June 2015). This article covers basic dependency injection with CDI, @Inject, Qualifiers and Alternatives. Part II : Integrating third-party frameworks (July/August 2015). Covers Producers, InjectionPoint API and Diposers Part III : Loose coupling (September/October 2015). This article covers Interceptors, … Continue reading Four CDI Articles in the Java Magazine
For my next talk I need a slide with dozens of technical buzzwords. Working in the IT industry, I am, and deal, with fashion victims (i.e. the best language/framework/tool/law is 6 months old). But because I couldn’t find more than 12/15 buzzwords, I’ve asked Twitter some help, and manage to reach more than 50 buzzwords. Thanks to the Tweetosphere ! Here are a few buzzwords in alphabetical … Continue reading Buzz Word Bingo 2015
I’m happy to announce that my course on CDI 1.1 has been published on PluralSight. This 3:40 hours long course is divided in several modules : Introduction (17:48) : Why do we need dependency injection in our applications, how do we usually do it, how can CDI help us Understanding Context and Dependency Injection (20:24) : Get the basis of what CDI is, what it’s … Continue reading A Full CDI 1.1 Course on Pluralsight
Exactly 7 years ago we had our first Paris JUG meeting. It was held in a small room, already packed with 40 people. A few meetings later, we had to move to another venue, and another one, and another one. Today, 7 years after, the Paris JUG gathers more than 200 people during its monthly meeting. And today, I’m officially communicating that I’m leaving the … Continue reading The Paris JUG President is leaving, long live the President!
I’m sure you’ve all heard that assigning a variable to null helps the Garbage Collector, or not declaring a method final improves in lining…. But what you also know is that JVMs have evolved drastically and what was true yesterday may not be true today. So, how do we know that our code performs? Well, we don’t, because we are not supposed to guess what the JVM does… we just … Continue reading Micro Benchmarking with JMH: Measure, don’t guess!
Prior JPA 2.1, most JPA providers (Hibernate, EclipseLink, OpenJPA) would have a proprietary way to generate the database schema (Data Definition Language scripts) from Entities. In the JPA 2.1 specification (JSR 338) there is a new section called 9.4 Schema Generation introducing an API and some properties to generate a database schema in a standard and portable way. Properties in persistence.xml In the history of JPA specification, we … Continue reading Generating Database Schemas with JPA 2.1
Very often, when talking/training/sharing about Java EE, I get the same question: What about clustering in Java EE? The answer is: nothing, rien, nada, ezer, nista, niets! There is nothing about clustering (failover, load-balancing…) in JavaEE. And to prove it, I’ve looked for the word “cluster” in the 4.171 pages of the 19 more important Java EE 7 specifications. The word “cluster” only appears once : EE.5.2.2 – Application … Continue reading There Is No “Cluster” in Java EE
For Devoxx Belgium 2014 I had the opportunity to run a 3 hours hands-on-lab on Java EE with JBoss Forge. The idea was to get people up and running with JBoss Forge by 1) installing Forge (CLI and JBDS), 2) playing with it and 3) developing an entire Java EE application and extend it by writing a JBoss Forge add-on. The trick with a hands-on-lab is you can end-up with … Continue reading Run a JBoss Forge “Hands-on-Lab” at Your Local User Group
Believe it or not, but I’ve been using Intellij IDEA for more than 10 years (I think it was back in 2003) and I love it ! Because of that, at each conference I go, I usually pay a visit to the JetBrains booth and chat with the guys. Mostly to tell them how good their products are, but also to give them some ideas about possible … Continue reading I Would Like Better AppServer Support in Intellij IDEA