XML Blueprint
Un fichier XML Blueprint est identifié par un élément blueprint de niveau supérieur et contient des définitions de gestionnaires de composant tels qu'un gestionnaire de bean, un gestionnaire de service et des gestionnaires de référence de service.
Un fichier XML Blueprint est identifié par un élément Blueprint de niveau supérieur, comme indiqué dans l'exemple de code blueprint.xml suivant.
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
...
</blueprint>
L'espace de nom XML identifie la conformité du document à Blueprint version 1.0.0. L'élément Blueprint de niveau supérieur identifie le document comme définition de module blueprint.
- Un gestionnaire de beans crée une instance d'un objet Java™ avec les arguments et les propriétés indiqués. Il peut créer une ou plusieurs instances d'objet, selon les paramètres de portée. Il peut également gérer le cycle de vie d'un objet et le notifier lorsque toutes les propriétés ont été injectées ou lorsqu'il est détruit.
- Un gestionnaire de service enregistre et désenregistre un service dans le registre de service OSGi.
- Deux gestionnaires de référence de service fournissent un accès aux services
enregistrés dans le registre de service OSGi :
- Un gestionnaire de référence fournit un objet qui est un proxy du service enregistré dans le registre de service.
- Un gestionnaire de liste de référence fournit une liste dynamique des objets de proxy du service ou des objets de référence du service actuellement dans le registre de service.
- identificateur
- Cet attribut facultatif définit l'ID d'un gestionnaire de niveau supérieur. L'ID doit être unique pour tous les gestionnaires de niveau supérieur dans le conteneur Blueprint. Si vous ne spécifiez pas cet attribut, un ID unique est automatiquement créé. Les gestionnaires utilisent l'ID comme référence des autres gestionnaires. Par exemple,
lors de l'injection, le gestionnaire demande aux gestionnaires référencés de fournir un
objet injecté dans le composant en cours de création par le gestionnaire.
Ne définissez pas l'attribut id pour les gestionnaires définis dans des déclarations en ligne dans d'autres définitions de gestionnaire, car ils sont considérés comme anonymes.
- activation
- Cet attribut facultatif définit le mode d'activation du gestionnaire. Les modes d'activation suivants sont pris en charge :
- eager. Le gestionnaire est activé lors de l'initialisation du conteneur Blueprint. Il s'agit de la valeur par défaut.
Un gestionnaire de service est publié dans le registre de service et active le gestionnaire de bean avec le service sous-jacent.
- lazy. Le gestionnaire est activé sur demande. Un gestionnaire est activé
lorsqu'il lui est demandé de fournir sa première instance de composant.
Pour un gestionnaire de bean, le bean est uniquement instancié lorsqu'un autre gestionnaire de bean y accède en premier. Le gestionnaire de service est publié dans le registre de service mais n'active pas le gestionnaire de bean avec le service sous-jacent.
Pour modifier le mode d'activation par défaut pour tous les gestionnaires dans le fichier XML Blueprint, définissez l'attribut default-activation sur l'élément Blueprint.
Chaque gestionnaire a ses propres étapes d'activation et de désactivation. Un gestionnaire est désactivé lorsque le conteneur Blueprint est détruit.
- eager. Le gestionnaire est activé lors de l'initialisation du conteneur Blueprint. Il s'agit de la valeur par défaut.
- dependsOn
- Cet attribut facultatif définit les dépendances explicites d'un gestionnaire. Il indique une liste d'ID de gestionnaire dans laquelle les gestionnaires doivent être activés avant que ce gestionnaire soit activé. Un gestionnaire peut également disposer de dépendances implicites qui sont définies par les références d'autres gestionnaires dans une définition de gestionnaire.