Para capturar un nuevo tipo de datos
o un tipo de datos existente con una nueva técnica de grabación, defina un nuevo grabador.
La única función necesaria de un grabador es capturar datos. No inicia ni configura un cliente. Si debe iniciar un cliente o configurarlo para que un grabador pueda grabarlo, consulte Definición de un nuevo cliente y Definición de cómo un grabador puede grabar un cliente.
Para definir un grabador nuevo:
- Declare un nuevo tipo de grabador en el archivo plugin.xml. Utilice el punto de extensión com.ibm.rational.test.lt.recorder.core.recorder.
- Determine si el grabador se puede ejecutar localmente, en el entorno de trabajo o si se debe ejecutar remotamente en una máquina virtual Java (JVM) aparte.
- Defina un delegado, que es la clase de implementación del grabador.
El delegado inicia y detiene el grabador, a parte de capturar datos.
- Si el grabador es remoto, defina una implementación de iniciador remoto que proporciona detalles sobre la JVM que ejecuta el delegado.
- De manera opcional, defina un validador de requisitos previos que realiza una verificación básica de que el grabador puede ejecutarse en el sistema actual.
- Declare qué tipos de paquetes de grabador emite el grabador.
Siga los siguientes requisitos para implementar la interfaz IRecorderDelegate:
- Esta interfaz se encarga de iniciar y detener el grabador, así como de notificar sucesos tales como "recorder started," "recorder stopped" y "packet
captured." Debe proporcionar una implementación de esta interfaz. De manera opcional, un grabador soporta que se detenga y se reanude. Si el grabador no soporta las operaciones de pausa y reanudación, asegúrese de que las implementaciones de los métodos estén vacías.
- La mayoría de los métodos son asíncronos. En otras palabras, la infraestructura no necesita que la operación se complete cuando el método vuelve.
Por ello, un delegado de grabador debe notificar la infraestructura cuando la operación se complete.
- Un grabador puede tener una configuración. La configuración se construye utilizando un archivo XML con la extensión .recconfig o utilizando un asistente. Para obtener un ejemplo de un archivo XML, abra un archivo de sesión de grabación existente y, a continuación, pulse . La configuración se almacena en un objeto RecorderConfiguration, que es un mapa de series a varios tipos de objetos. Un delegado de grabador lee la configuración en su método initialize().
- A un delegado de grabador se le proporciona un contexto en su método initialize().
Este contexto permite al grabador enviar notificaciones de sucesos, grabar mensajes de registro y enviar paquetes capturados.
- Normalmente, amplía la clase BaseRecorderDelegate en lugar de implementar directamente la interfaz IRecorderDelegate. La clase abstracta base proporciona un comportamiento básico a la mayoría de los métodos, de manera que puede sustituir sólo los que necesite.
- Un grabador debe utilizar el método getContext().packetCaptured() para notificar la infraestructura cuando ha capturado datos.
- Cuando un grabador construye un paquete, el paquete debe rellenarse con un ID de grabador. El ID de grabador se atribuye por la infraestructura y puede recuperarse mediante el método getContext().getComponentUniqueId().
- Cuando un grabador construye un paquete, el paquete debe rellenarse con información de tiempo. La información de tiempo debe expresarse en una unidad defina por la infraestructura. El tiempo actual, expresado en las unidades de la infraestructura, puede recuperarse mediante el método getContext().currentTime().
- Un delegado de grabador puede enviar mensajes al usuario invocando el método sendUserMessage() o getContext().sendMessage(new UserMessage(...))
si el delegado no amplía la clase BaseRecorderDelegate.
- Puede habilitarse un delegado de grabador para comunicarse con entidades de fuera, mediante el establecimiento o la recuperación de propiedades dinámicas o mensajes. El delegado de grabador resulta útil sólo si desarrolla una interfaz de usuario específica para el grabador o si define un decorador de cliente para el grabador.