Pour capturer un nouveau genre de données ou un
genre de données existant à l'aide d'une nouvelle technique d'enregistrement,
définissez un nouvel enregistreur.
La seule tâche incombant à un enregistreur est de capturer des données. L'enregistreur
ne démarre pas ni ne configure de client. Si vous avez besoin de démarrer un client
ou de configurer un client de sorte qu'il puisse être enregistré par un
enregistreur, consultez les sections Définition d'un nouveau client
et Définition du mode d'enregistrement d'un client par un
enregistreur.
Pour définir un nouvel enregistreur :
- Déclarez un nouveau type d'enregistreur dans le fichier plugin.xml. Utilisez le point
d'extension com.ibm.rational.test.lt.recorder.core.recorder.
- Déterminez si l'enregistreur peut être exécuté localement, dans le plan de travail, ou
s'il doit s'exécuter à distance, dans une JVM à part.
- Définissez un délégué, qui correspond à la classe d'implémentation de l'enregistreur.
Le délégué démarre et arrête l'enregistreur et capture les données.
- Si l'enregistreur est distant, définissez une implémentation de lanceur à
distance qui fournit des détails sur la machine virtuelle Java qui exécute le délégué.
- Définissez éventuellement un valideur prérequis qui effectue la vérification de base
comme quoi l'enregistreur peut être exécuté sur l'ordinateur actuel.
- Déclarez les types de paquet d'enregistreur émis par l'enregistreur.
Tenez compte des points suivants pour
implémenter l'interface IRecorderDelegate :
- Cette interface démarre et arrête l'enregistreur et fournit une notification d'événements tels
que "enregistreur démarré," "enregistreur arrêté" et "paquet capturé." Vous devez fournir une implémentation de cette interface. Un
enregistreur peut éventuellement être mis en pause et repris. Si l'enregistreur ne prend
pas en charge les opérations de mise en pause et de reprise, vérifiez que les
implémentations des méthodes sont vides.
- La plupart des méthodes sont asynchrones. En d'autres termes, l'infrastructure ne
requiert pas que l'opération soit terminée avant le retour de la méthode.
Pour cette raison, un délégué d'enregistreur doit notifier l'infrastructure de la fin
d'une opération.
- Un enregistreur peut posséder une configuration. Cette configuration est générée à
l'aide d'un fichier XML portant l'extension .recconfig ou d'un assistant. Pour un exemple de
fichier XML, ouvrez un fichier de session d'enregistrement existant, puis cliquez sur
. La configuration est stockée dans un objet RecorderConfiguration, qui correspond à
une mappe de chaînes à divers types d'objet. Un délégué d'enregistreur lit sa
configuration dans sa méthode initialize().
- Un délégué d'enregistreur reçoit un contexte dans sa méthode initialize().
Ce contexte permet à l'enregistreur d'envoyer des notifications d'événement,
d'enregistrer des messages de journal et d'envoyer des paquets capturés.
- Généralement, vous étendez la classe BaseRecorderDelegate plutôt que d'implémenter
directement l'interface IRecorderDelegate. La classe abstraite de base fournit un comportement de
base pour la plupart des méthodes afin que vous puissiez ne remplacer que celles requises.
- Un enregistreur doit utiliser la méthode getContext().packetCaptured() pour notifier
l'infrastructure lorsqu'il a capturé des données.
- Lorsqu'un enregistreur crée un paquet, ce dernier doit être complété avec un ID
d'enregistreur. L'ID d'enregistreur est attribué par l'infrastructure et peut être obtenu à
l'aide de la méthode getContext().getComponentUniqueId().
- Lorsqu'un enregistreur crée un paquet, ce dernier doit être complété avec un
horodatage. Cet horodatage doit être exprimé dans une unité définie par
l'infrastructure. L'heure actuelle, exprimée dans l'unité définie par l'infrastructure,
peut être obtenue à l'aide de la méthode getContext().currentTime().
- Un délégué d'enregistreur peut envoyer des messages à l'utilisateur en appelant
la méthode sendUserMessage() ou la méthode getContext().sendMessage(new UserMessage(...))
si le délégué n'étend pas la classe BaseRecorderDelegate.
- Un délégué d'enregistreur peut être autorisé à communiquer avec des entités externes
en définissant ou en extrayant des propriétés dynamiques ou en recevant des messages. Un délégué d'enregistreur
n'est utile que si vous développez une interface utilisateur spécifique pour
l'enregistreur ou si vous définissez un décorateur client pour l'enregistreur.