Migrando Implementações do Gravador de Versões Anteriores

A nova estrutura de gravação inclui melhorias significativas sobre a estrutura de gravador genérica (GRF) fornecida nas versões anteriores. A nova estrutura apresenta mais flexibilidade para combinar clientes e gravadores. Com ela, você pode iniciar vários gravadores e clientes em uma sessão, consolidando os dados gravados em um arquivo. Além disso, a estrutura não usa o TPTP Agent Controller e, portanto, não exige que os gravadores e clientes sejam executados em uma Java Virtual Machine separada. Finalmente, a nova estrutura tem desempenho melhorado e melhor escalabilidade em termos de quantidade de dados graváveis e de impacto no uso da memória.

A API foi completamente redefinida para produzir essas melhorias. A migração de implementações de gravadores existentes para a nova estrutura requer esforço significativo. As seguintes tabelas resumem as mudanças nas classes e métodos da nova estrutura de gravação.

Classe anterior Nova estrutura de gravação, versão 8.2 e posterior Comentários
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 a serialização Java para serialização nesta versão do produto. Se os pacotes suportarem conexões, estenda a interface IConnectionPacket e suas subinterfaces. Essa extensão permite os recursos de filtragem no momento da geração do teste.
org.eclipse.hyades.execution.recorder.remote.RecorderAgent com.ibm.rational.test.lt.recorder.core.extensibility.BaseRecorderDelegate O método run() foi substituído pelo método start(). Os encadeamentos que esse método pode iniciar não são mais monitorados pela estrutura. O método setIsReady(true) foi substituído pelo método sendStarted(enabled). O método handleCommand(STOP) foi substituído pelo método stop(). A classe chama o método sendStopped() quando o gravador para. (Esse evento foi anteriormente notificado implicitamente pelo término do encadeamento retornado pelo método run().) Essa classe não precisa mais ser executada em uma JVM separada.
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 Esta classe será necessária apenas se o delegado de gravador precisar ser executado em uma JVM separada. Com essa versão, você pode incluir entradas de caminho de classe e propriedades do sistema para a JVM ativada. Não há requisitos para a implementação de arquivo, pois a JVM é sempre executada no computador local. A gravação em computadores remotos nunca foi ativada nas liberações anteriores. As classes AbstractRecorderExecOptionsProvider.getAgentClassPath() e RecorderExecutableObjectAdapter.getAgentClassPath() são substituídas pela declaração de classe de delegado no ponto de extensão.
org.eclipse.tptp.test.provisional.recorder.messages.AbstractRecorderMessageProvider Nenhum A classe de serialização automática IRecorderPacket e a estrutura manipulam a serialização da mensagem nesta versão. A implementação dessa classe não é mais necessária.
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 Nenhum A estrutura manipula automaticamente a etapa que esta classe concluiu nas versões anteriores.
Ponto de extensão anterior Nova estrutura de gravação, versão 8.2 e posterior Comentários
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 Nenhum A estrutura manipula automaticamente a etapa que esta classe manipulou nas versões anteriores.
org.eclipse.hyades.test.core.Recorder#Recorder.recorderMessageHandlers Nenhum A classe de serialização automática IRecorderPacket e a estrutura manipulam a serialização da mensagem nesta versão. A implementação dessa classe não é mais necessária.
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 Consulte o comentário anterior sobre a classe AbstractRecorderExecOptionsProvider.
org.eclipse.hyades.test.core.Recorder#Recorder.requiresIntermediateFile Nenhum Esta opção não é mais suportada. As sessões de gravação são sempre mantidas após a gravação.
org.eclipse.hyades.test.core.Recorder#Recorder.fileExtension Nenhum Esta opção não é mais suportada. O formato e a extensão de gravação agora são sempre controlados pela estrutura em um arquivo .recsession.
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  

Feedback