The new recording
framework includes significant improvements over the generic recorder
framework (GRF) that was delivered in previous versions. The new framework
introduces more flexibility for combining clients and recorders. With
the framework, you can start multiple recorders and clients in one
session, consolidating the recorded data in one file.
In
addition, the framework does not use the TPTP Agent Controller, and
thus does not require recorders and clients to be run in a separate Java™ Virtual Machine. Finally, the
new framework provides improved performance and better scalability
in terms of the amount of recordable data and the impact on memory
usage.
The API has been completely redefined to produce these improvements.
Migrating existing recorder implementations to the new framework requires
significant effort. The following tables summarize the changes to
classes and methods in the new recording framework.
Previous class |
New recording framework, version 8.2 and later |
Comments |
com.ibm.rational.test.lt.trace.PayloadMsg |
com.ibm.rational.test.lt.recorder.core.packet.IRecorderPacket
com.ibm.rational.test.lt.recorder.core.packet.connection.IConnectionPacket |
Use Java serialization
for serialization in this product version. If packets support connections,
extend the IConnectionPacket interface and its subinterfaces. This
extension enables filtering capabilities at test-generation time. |
org.eclipse.hyades.execution.recorder.remote.RecorderAgent |
com.ibm.rational.test.lt.recorder.core.extensibility.BaseRecorderDelegate |
The run() method has been replaced with the start() method.
The threads that this method can start are no longer monitored by
the framework. The setIsReady(true) method has been replaced with
the sendStarted(enabled) method. The handleCommand(STOP) method has
been replaced with the stop() method. The class calls the sendStopped()
method when the recorder has stopped. (This event was previously implicitly
notified by the termination of the thread returned by the run() method.)
This class is no longer required to run in a separate JVM. |
org.eclipse.hyades.execution.recorder.remote.RecorderEnvironmentAdapter
org.eclipse.tptp.test.provisional.recorder.framework.AbstractRecorderExecOptionsProvider
org.eclipse.hyades.execution.recorder.remote.RecorderExecutableObjectAdapter |
com.ibm.rational.test.lt.recorder.core.deploy.IRemoteLauncher |
This class is required only if the recorder delegate must
run in a separate JVM. With this version, you can add classpath entries
and system properties to the launched JVM. There is no requirement
for file deployment because the JVM is always run on the local computer.
Recording on remote computers was never enabled in previous releases.
The AbstractRecorderExecOptionsProvider.getAgentClassPath() and RecorderExecutableObjectAdapter.getAgentClassPath()
classes are replaced by the delegate class declaration in the extension
point. |
org.eclipse.tptp.test.provisional.recorder.messages.AbstractRecorderMessageProvider |
None |
The IRecorderPacket auto-serialization class and the framework
handle message serialization in this version. Implementing this class
is no longer required. |
org.eclipse.tptp.test.provisional.recorder.ui.wizards.DefaultRecWizardProvider |
com.ibm.rational.test.lt.recorder.ui.wizards.NewRecorderWizard
com.ibm.rational.test.lt.recorder.ui.wizards.NewRecorderClientWizard |
|
org.eclipse.tptp.test.provisional.recorder.framework.RecorderClientHelperAdapter |
None |
The framework automatically handles the step that this class
completed in earlier versions. |
Previous extension point |
New recording framework, version 8.2 and later |
Comments |
org.eclipse.hyades.test.core.Recorder#Recorder.protocol |
com.ibm.rational.test.lt.recorder.core.recorder#recorder.outputPacket |
|
org.eclipse.hyades.test.core.Recorder#Recorder.id |
com.ibm.rational.test.lt.recorder.core.recorder#id |
|
org.eclipse.hyades.test.core.Recorder#Recorder.name |
com.ibm.rational.test.lt.recorder.core.recorder#name |
|
org.eclipse.hyades.test.core.Recorder#Recorder.recorderAgent
|
com.ibm.rational.test.lt.recorder.core.recorder#recorder.delegate |
|
org.eclipse.hyades.test.core.Recorder#Recorder.recorderClientHelper |
None |
The framework automatically handles the step that this class
handled in earlier versions. |
org.eclipse.hyades.test.core.Recorder#Recorder.recorderMessageHandlers |
None |
The IRecorderPacket auto-serialization class and the framework
handle message serialization in this version. Implementing this class
is no longer required. |
org.eclipse.hyades.test.core.Recorder#Recorder.wizardPageProvider |
com.ibm.rational.test.lt.recorder.ui.recorderClientWizard#recordersWizard.class |
|
org.eclipse.hyades.test.core.Recorder#Recorder.execOptionsProvider |
com.ibm.rational.test.lt.recorder.core.recorder#recorder.remoteLauncher |
See the previous comment about the AbstractRecorderExecOptionsProvider
class. |
org.eclipse.hyades.test.core.Recorder#Recorder.requiresIntermediateFile
|
None |
This option is no longer supported. Recording sessions are
always kept after recording. |
org.eclipse.hyades.test.core.Recorder#Recorder.fileExtension |
None |
This option is no longer supported. The recording format
and extension are now always controlled by the framework in a .recsession
file. |
org.eclipse.hyades.test.core.Recorder#Recorder.icon |
com.ibm.rational.test.lt.recorder.ui.recordingUiImage#recorderImage.icon |
|
org.eclipse.hyades.test.core.Recorder#Recorder.description |
com.ibm.rational.test.lt.recorder.ui.recorderClientWizard#recordersWizard.description |
|