Neue Protokollerweiterungen

Im vorliegenden Abschnitt wird als Beispiel für die Verwendung von Erweiterungsfunktionen zur Codegenerierung die Implementierung der Subsystemerweiterung zur Codegenerierung für das Socketprotokoll beschrieben.

Zusammen mit untergeordneten Paketen des Typs "config", "lang" und "model" wurde unter dem Titel com.ibm.rational.test.lt.sdksamples.codegen.socket ein dediziertes Plug-in zur Codegenerierung erstellt. Mithilfe des Socketsubsystems zur Codegenerierung wird das Leistungsspektrum des Plug-ins "codegen.core" erweitert.

Im Paket "config" ist die Klasse SocketExtensionPreferences mit der Methode supportsFeatures() enthalten. Auf diese Weise manifestiert sich das Interesse an Tests, bei denen Funktionslisten mit der Socketfunktion zum Einsatz kommen. Außerdem wird über die Methode getSupportedModelElements() deklariert, welche übersetzerrelevanten Modellelementtypen von dieser Erweiterung des Typs "codegen" unterstützt werden.

Im Paket "lang" sind zwei Hauptklassen enthalten: eine Scriptdefinitionsklasse (SocketScriptDefinition) und eine Übersetzerklasse (SocketTranslator). Mit diesen Klassen werden die entsprechenden Superklassen im Plug-in "codegen.core" erweitert, und es werden Methoden zum Umsetzen von Script- und Testelementen definiert. Durch die Scriptdefinitionsklasse wird die Methode doScriptLevelTranslation() überschrieben, wobei (nach Aufrufen der Superklasse) alle socketprotokollrelevanten Schablonenparameter zum Socket-Script umgewandelt werden. Durch die Übersetzerklasse wird die Methode getTranslationFor() überschrieben, wobei alle nicht-socketrelevanten Funktionen durch Aufrufen der Superklasse und alle socketrelevanten Testelemente und Parameter lokal verwaltet werden.

Im Paket "model" ist die Klasse SocketElementAdapter mit einer Methode des Typs getAdapterFor() enthalten, über die festgelegt wird, welcher Typ "Common Behavior"-Element (Common Behavior, allgemeines Verhalten) von dieser Protokollerweiterung ausgeführt werden soll, und von der das entsprechende Modellelement des Typs codegen zurückgemeldet wird.

Das Plug-in zur Protokollerweiterung wurde zusätzlich um das Schablonenverzeichnis ergänzt. Außerdem wurden dort socketrelevante Schablonen erstellt und platziert. Alle erforderlichen Erweiterungen wurden in der Protokollerweiterungsdatei plugin.xml definiert.

Ein Beispiel zu der Erweiterung für Codegenerierung finden Sie im Plug-in "com.ibm.rational.test.lt.sdksamples.codegen.socket".


Feedback