#54325·quarkus

Introduce build step injection support for `Gizmo` (Gizmo 2)

Author: dmlloydCreated May 19, 2026Updated Sep 17, 2026
Labelsarea/core

Modify the extension loader to automatically support injecting a Gizmo instance into a step. The Gizmo instance would be configured as if set up manually with a ClassOutput that generates classes as GeneratedClassBuildItem, resources as GeneratedResourcesBuildItem, and service providers as GeneratedServiceProviderBuildItem.

Internally, injecting a Gizmo would cause these items to be implicitly produced. Further configuration of the Gizmo instance can be done manually within the build step.

Once #53378 is merged, the injected Gizmo should be set up to register its dynamic bootstraps using that mechanism as well.

Then, all usages of GeneratedClassGizmo2Adaptor should be cleaned up, and that class should be deprecated and removed.

Implementation note: the changes would be made to io.quarkus.deployment.ExtensionLoader#loadStepsFromClass, which is a pretty large piece of code. Injection of a Gizmo should only be allowed for method parameters (because that is where BuildProducer can be injected).