Archive: 2025

Nushell Niceties: Getting The HTTP Response Status

Posted on by  
Hubert Klein Ikkink

Nushell has a built-in command to invoke HTTP requests: http. You don’t need an external tool like curl or httpie to make HTTP requests. There a lot of options to use with the http command. One of them is the --full or shorter -f option to return a table with extra details of the HTTP request and response. The request and response headers, the body and status are returned in the table. You can easily get information from the table with all the default selection options for a table structure.

Continue reading →

Having fun with the Java Service Provider Interface

Posted on by  
Jacob van Lingen

Sometimes it happens. You stumble upon something that feels brand new to you — only to find out it’s been around for years. When I joined Moderne and started working with its OpenRewrite framework, this exact thing happened. I discovered the Java Service Provider Interface (SPI), a native mechanism in Java that enables plugin-like extensibility in applications.

Continue reading →

Tabs and Brackets: Mixing Java and Python using GraalPy

Posted on by  
Niels de Bruin

Java and Python are both excellent tools, and even though programmers usually like nothing better than debating which language, framework, or editor is best, that is not the goal of this post. Each language has strengths and weaknesses, but what I consider interesting is that Java and Python complement each other so well. However, systems using multiple languages face increased complexity in deployment, maintenance, testing, integration, and interoperability. This post aims to answer two main questions through a set of practical hands-on experiments.

Continue reading →

SDKMAN! Listing And Upgrading Outdated SDKs And Tools

Posted on by  
Hubert Klein Ikkink

SDKMAN! is as powerful tool to install and manage software development kits (SDKs) and tools, like Java, Groovy, Gradle, Maven, Spring Boot and Quarkus. If you want to see if a new version of a SDK or tool is available, you can use the sdk upgrade command. This command will list all outdated SDKs and tools. The installed version and the latest version are shown for each SDK and tool. To see if a single SDK or tool is outdated, you can use the name of the SDK or tool as argument to the sdk upgrade command.

Continue reading →

Log level usage

Posted on by  
Ronald Koster

In production the log level should be INFO. However, in many cases it is set to DEBUG because otherwise critical message are missed. This is unfortunate, because it usually leads to a lot of log file pollution. And it should not have been needed, had the developers followed the following rules.

Continue reading →

Helidon SE Helpings: Serving Observe Endpoints On Different Port

Posted on by  
Hubert Klein Ikkink

When you enable the /observe endpoints you can configure them to be served on a different port than the application. By default the endpoints are available on the same port as the application. But you can define an extra named socket with another port number in the configuration of the WebServer instance. And in the configuration of the ObserveFeature instance you can define the socket name that should be used for the observe endpoints.

Continue reading →

Helidon SE Helpings: Add Git Information To Info Endpoint

Posted on by  
Hubert Klein Ikkink

In a previous post you learned how to add information to the /observe/info endpoint. You can also add Git information to the endpoint. For example you can add the Git commit id so you can see check, when the application is running in a production environment, which Git commit for the code was deployed. In order to achieve this you must first generate a properties file with all Git information. The next step is to process this file in your Helidon SE application and add the properties to the /observe/info endpoint.

Continue reading →

Helidon SE Helpings: Adding Information To Info Endpoint

Posted on by  
Hubert Klein Ikkink

It is possible to add an endpoint to Helidon SE that can show information about the application. You can add custom information to this endpoint. In order to enable the endpoint you need to add the dependency io.helidon.webserver.observe:helidon-webserver-observe-info to your pom.xml file. This will add the endpoint /observe/info to your application. You can add key-value pairs to your configuration or code that will be exposed in the endpoint.

Continue reading →

Helidon SE Helpings: Configure Memory Health Check

Posted on by  
Hubert Klein Ikkink

You can configure a memory health check in Helidon SE. A memory health check will return a status of UP if the memory usage is below a certain threshold percentage and DOWN if the memory usage is above the threshold percentage. The default threshold percentage is 98%. To add the memory health check you need to add the dependency io.helidon.health:helidon-health-checks to your pom.xml file. This dependency contains three health checks: disk space usage, memory usage and dead lock detection.

To configure the memory health check you need to set the configuration property server.features.observe.observers.health.helidon.health.memory.thresholdPercent to the threshold percentage. Alternatively you can set the threshold percentage in your application code.

Continue reading →

shadow-left