Quarkus Extension Additional Application Archive Marker Build Item

Contenus

On continue avec les différentes manières d’indexer des Beans via une extension Quarkus avec l’AdditionalApplicationArchiveMarkerBuildItem. Ce build item permet en quelques sorts de faire en une seule étape ce que fait la combinaison CombinedIndexBuildItem et AdditionalBeanBuildItem.

Comme son nom l’indique ce build item permet d’indiquer à Quarkus des fichiers Marker supplémentaire à prendre en compte au moment du scan du classpath. Par défaut Quarkus va indexer l’ensemble des Beans dans les archives possédant un fichier beans.xml, jandex.idx ou config properties. Ce build item permet de déclarer des fichiers Marker supplémentaire pour déclencher l’indexation.

1
2
3
4
@BuildStep()
void addMarker(BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> producer) {
    producer.produce(new AdditionalApplicationArchiveMarkerBuildItem("my/package/Foo/markerFile.ext"));
}

Dans cet exemple, Quarkus va indexer l’ensemble des beans contenu dans les archives ayant le fichier my/package/Foo/markerFile.ext. On utilise ici la notation / et non celle pointée(.) pour les packages. Le nom d’un package peu aussi est spécifié.

Conclusion

L’AdditionalApplicationArchiveMarkerBuildItem est un build item très puissant, mais à utiliser avec parcimonie. En effet, il peut très rapidement conduire à l’inclusion de Bean non voulu dans l’index Quarkus. De ce point de vue le combo CombinedIndexBuildItem et AdditionalBeanBuildItem offre plus de contrôle.

0%