Constructor vs. Field DI,, JBoss, Clouds, JSF, JAXB, Quarkus, VueJS, Micronaut, Web Builds--or 84th

The 84th covering:

Constructor vs Field Dependency Injection, JCA and RAR, Jakarta EE Security, JBoss, Timers in public clouds, JSF and HTTP Session replication JAXB customisations, Quarkus metrics, vuejs follow up, Micronaut and MicroProfile, dependency management and builds in web applications, dependent vs. all bean-discovery-mode
is available:

See you every first Monday of the month at April, 5th, 8pm CET (UTC+1:00). Show is also announced at:

Any questions left? Ask now: and get the answers at the next

Constructor vs. Field DI, JCA, RARs, JBoss, Clouds, JSF, JAXB, Quarkus, VueJS, Micronaut--or 84th

Topics and questions for the 84th

  1. First Monday of the Month Bug
  2. JCA, WLS and WorkManager
  3. Jakarta EE Security Resources
  4. JBoss and timer migration to the public cloud
  5. JSF to cloud migration and HTTP Session replication
  6. RARs in EARs
  7. JAXB customizations without annotations
  8. Quarkus Metrics and Health follow up
  9. vuejs follow up
  10. Micronaut and MicroProfile
  11. Constructor Injection vs. Field Injection
Any questions left? Ask now: and get the answers at the next

Ask questions during the show via twitter mentioning me: (@AdamBien),using the hashtag: #airhacks or built-in chat at: You can join the Q&A session live each first Monday of month, 8 P.M at

How Caffeine Cache Happened--an podcast

Subscribe to podcast via: spotify| iTunes| RSS

The #129 episode with Ben Manes (@benmanes) about:
Java, Bezel,Gin, GWT at Google and how Caffeine Cache happened
is available for

Building Apps with Helidon & MicroProfile

Implementing a MicroProfile application with JAX-RS, CDI, Metrics, Health, Fault Tolerance, Config from "Scratch" and on Helidon:

Micronaut, MicroProfile, Micronaut Data and Helidon

A code-driven introduction to Micronaut, Micronaut support for MicroProfile, and using Micronaut data with Helidon:

From Competitive Gaming to Java EE API Mavenization--an podcast

Subscribe to podcast via: spotify| iTunes| RSS

The #128 episode with Romain Grecourt (@@rgrecourt) about:
competitive gaming, Java, Glassfish, Maven and Java EE API packaging
is available for

How KumuluzEE Happened--an podcast

Subscribe to podcast via: spotify| iTunes| RSS

The #127 episode with Jan Meznarič (jmezna) about:
"Java microservices, drools, jbpm, GlassFish, MicroProfile, Java EE, FatJARs, exploded JARs and layered JARs, cloud native apps, metrics, configuration, blockchain, peer to peer service updates and how KumuluzEE happened"
is available for

2021: Familiar APIs on Kickass Runtimes--WeAreDevelopers Conference Session

"Java's JAX-RS, DI, JPA, Metrics, Fault Tolerance, Configuration, cloud-readiness combined with minimal start times, high performance, and Go-like feel. ...and this without a dependency on a particular framework, vendor, or library. In this session, I will implement a next-generation Java backend from scratch and explain the magic on-the-fly. Java SE, reactive APIs, Helidon, Quarkus, GraalVM, MicroProfile, and a bit of Jakarta EE included."

Micronaut with JAX-RS, Dependency Injection (JSR-330)--a touch of MicroProfile supports JAX-RS, Bean Validation and JSR 330: Dependency Injection for Java compatible Dependency Injection and so a MicroProfile subset:

Quarkus, Health, Metrics,OpenAPI: Moved Permanently (301)

Quarkus release 1.11.0 (January 20, 2021) introduced the Dev UI /q/dev. To avoid conflicts, all non-application endpoints (e.g. /health, /metrics) were moved to the new root /q.

Now, the health endpoint is available under: /q/health and metrics are available under /q/metrics

Quarkus automatically redirects the non-application endpoints to the new location:

> curl -i localhost:8080/health
HTTP/1.1 301 Moved Permanently
location: http://localhost:8080/q/health    

> curl -i localhost:8080/metrics
HTTP/1.1 301 Moved Permanently
location: http://localhost:8080/q/metrics    

I'm using MicroProfile metrics after torture tests for threshold verification. The release +1.11.* broke the asserts, because JAX-RS / MicroProfile REST client didn't follow the redirects.

Starting with the release: 1.11.2+, also the health endpoint was moved to the new location. Kubernetes expects http status codes: 200-400, so 301 is still considered as 'healthy'.

However: in kubernetes-like environments, the developer may be in charge to specify the health command. Then 301 (redirect) might be problematic.

The /q prefix can be removed with the following property:


The endpoints are defined in the microprofile health and microprofile metrics specifications.

Seems like Quarkus is the first microprofile runtime which moved the endpoints to a different location.

See also related issue: MicroProfile Metrics, Health, OpenAPI URI changed #15030

Online Workshops
...the last 150 posts
...the last 10 comments