Browsed by
Tag: java

Quarkus Tip: How NOT to create a Quarkus extension

Quarkus Tip: How NOT to create a Quarkus extension

When you develop an application composed of several components, it is frequent to want to share some code in an external library, for example via an external JAR integrated as a dependency of your components. Quarkus is an extension framework, each extension it offers allows to integrate a technology (BDD client, ORM framework, …) to Quarkus, so it can be configured globally, used easily via CDI (dependency injection), work with GraalVM, … Quarkus has its own build system, via its…

Read More Read More

Quarkus and the Google Cloud Functions

Quarkus and the Google Cloud Functions

Quarkus is a microservice framework designed for the cloud and the containers. It is designed to have a reduced memory usage and the shortest possible startup time. It is mainly based on standards (Jakarta EE, Eclipse MicroProfile, …) and allows the use of mature and widespread Java libraries via its extensions (Hibernate, RESTeasy, Vert.X, Kafka, …). Quarkus has been thought for the cloud since its inception, it allows the development of Cloud Ready applications (as defined by the principle of…

Read More Read More

Quarkus Tip : Select a bean at runtime

Quarkus Tip : Select a bean at runtime

When developing an application, it is very common to have several implementations of a servicen and to have to select one or the other depending on the environment on which it is deployed. A classic example: a service that calls an API of an external partner that we want to call only in production, and therefore mock on the development and test / UAT / staging environments. Quarkus tries to move to build time, via its Maven or Gradle plugin,…

Read More Read More

Java 17 : what’s new ?

Java 17 : what’s new ?

Now that Java 17 is features complete (Rampdown Phase Two at the day of writing), it’s time to walk throught all the functionalities that brings to us, developers, this new version. This article is part of a series on what’s new on the last versions of Java, for those who wants to read the others, here are the links : Java 16, Java 15, Java 14, Java 13, Java 12, Java 11, Java 10, and Java 9. This release doesn’t contain many JEPs,…

Read More Read More

Introduction to Quickperf

Introduction to Quickperf

QuickPerf is a test library for Java to quickly evaluate and improve the performance of your application. The great interest of Quickperf lies in the fact that this is done via unit tests, which allows, after detecting and correcting a performance problem, to have non-regression tests so that it never comes back! You can then continuously evaluate the performance of your application via your continuous integration environment! Quickperf can be used to simply measure performance characteristics, or to assert on…

Read More Read More

Java 16 : what’s new ?

Java 16 : what’s new ?

Now that Java 16 is features complete (Rampdown Phase Two at the day of writing), it’s time to walk throught all the functionalities that brings to us, developers, this new version. This article is part of a series on what’s new on the last versions of Java, for those who wants to read the others, here are the links : Java 15,, Java 14, Java 13, Java 12, Java 11, Java 10, and Java 9. This new version counts no less than 17…

Read More Read More

Benchmark : conversion from long to byte[]

Benchmark : conversion from long to byte[]

I’ve been using Kafka a lot lately, and in Kafka a lot of things are byte arrays, even headers! As I have many components that exchange messages, I added headers to help with message tracking, including a timestamp header which has the value System.currentTimeMillis(). So I had to transform a long into a byte array; in a very naive way, I coded this: String.valueOf(System.currentTimeMillis()).getBytes(). But instantiating a String each time a header is created does not seem very optimal to…

Read More Read More

Java 15 : what’s new ?

Java 15 : what’s new ?

Now that Java 15 is features complete (Rampdown Phase One at the day of writing), it’s time to walk throught all it’s functionalities that brings to us, developers, this new version. This article is part of a series on what’s new on the last versions of Java, for those who wants to read the others, here are the links : Java 14, Java 13, Java 12, Java 11, Java 10, and Java 9. This new version brings lots of new JEPs, the main…

Read More Read More

Quarkus, jlink and Application Class Data Sharing (AppCDS)

Quarkus, jlink and Application Class Data Sharing (AppCDS)

Quarkus is optimized to start quickly and have a very small memory footprint. This is true when deploying in a standard JVM but even more so when deploying our application as a native executable via GraalVM. Quarkus greatly facilitates the creation of a native executable, thanks to this, a Quarkus application starts in a few tens of milliseconds and with a very small memory footprint: a few tens of MB of RSS (Resident Set Size – total memory usage of…

Read More Read More