Utilisation du contexte des messages
Vous pouvez utiliser les propriétés de message pour modifier la façon dont une médiation s'applique à un message.
Avant de commencer
Pourquoi et quand exécuter cette tâche
L'interface SIMessageContext possède une superinterface MessageContext. Les méthodes de la superinterface MessageContext permettent de gérer un ensemble de propriétés de message, qui permettent aux gestionnaires d'une chaîne de gestionnaires de partager un état lié au traitement. Il est important de noter que vous pouvez obtenir la valeur d'une propriété spécifique de l'interface MessageContext à l'aide de la méthode getProperty et que vous pouvez définir le nom et la valeur d'une propriété associée à l'interface MessageContext à l'aide de la méthode setProperty. Vous pouvez également afficher les noms des propriétés de ce MessageContext et supprimer une propriété (paire nom-valeur) du MessageContext.
Lors de l'exécution de la médiation, toutes les propriétés définies par l'utilisateur lors de la configuration de la médiation actuelle (voir Configuration des propriétés du contexte de médiation) sont appliquées à la propriété MediationContext définie.
Procédure
- Recherchez le point d'insertion du code de médiation fonctionnel dans votre gestionnaire de médiations, dans la méthode handle (contexte MessageContext). Lorsque vous utilisez les méthodes MessageContext qui vous permettent d'accéder aux propriétés du message, vous n'avez pas besoin de transtyper l'interface vers SIMessageContext sauf si les méthodes fournies par SIMessageContext vous intéressent également.
- Extrayez l'interface SIMessage de l'objet MessageContext. Par exemple, SIMessage message = ((SIMessageContext)context).getSIMessage();
- Extrayez ou définissez les propriétés en utilisant les méthodes MessageContext. Par exemple, si une propriété a été définie lors de la configuration avec le nom streetName, le type Chaîne (String) et la valeur "Main Street", le code permettant d'extraire et d'afficher le nom de la rue peut se présenter comme suit :
Exemple
public boolean handle(MessageContext context) throws
MessageContextException {
........
{
/* Extraction de la propriété du nom de rue */
String myStreetName;
myStreetName = (String) getProperty(streetName);
/* Affichage de la valeur de la propriété */
System.out.println(myStreetName);
}
}