Eine der Hauptstrategien des Rational-Unternehmensbereichs ist die Erweiterung der Integration von Rational- und Nicht-Rational-Tools. Die Technologie für diese Strategie basiert auf Open Services for Lifecycle Collaboration (OSLC).
Die zur Verfügung gestellten Scripts unterliegen vollständig der Kontrolle und Anpassung des Rational DOORS-Administrators, der entscheiden kann, welche DXL-Scripts in der Serviceschnittstelle verfügbar gemacht werden. Der Administrator kann die Möglichkeit zum Aufrufen bestimmter Funktionen unterbinden, die als potenzielles Sicherheitsrisiko betrachtet werden könnten, wie 'runDXL'.
Beachten Sie, dass bestimmte DXL-Scripts, wie Benutzerschnittstellenwidgets, nie unterstützt werden.
Da die Serviceerkennung durch OAuth geschützt ist, müssen Benutzer dieser Funktionalität sich zunächst mit Benutzername und Kennwort authentifizieren.
Erstellen Sie eine DXL-Datei namens helloWorld.inc, die den folgenden Code enthält:
void getHelloString(string language)
{
string hello = null
if ("French" == language)
{
hello = "Bonjour le monde"
}
else if ("Finnish" == language)
{
hello = "Hei maailma"
}
else if ("Latin" == language)
{
hello = "Ave mundi"
}
else
{
hello = "Hello world"
}
setDxlServiceResult hello
print hello "\n"
}
Kopieren Sie die Datei helloWorld.inc in das Verzeichnis /addins/services. Der Standardspeicherort dieses Verzeichnisses lautet C:\Programme (x86)\IBM\Rational\DOORS\9.5\lib\dxl\addins\services.
Starten Sie einen Rational DOORS-Client und melden Sie sich als Administrator an.
Um die DXL zu installieren, öffnen Sie ein DXL-Fenster und geben Sie den folgenden DXL-Code ein. Dadurch wird ein Service namens "helloWorld" erstellt.
OSLCDXLService os = null
string err = null
string dxlCode = "#include <addins/services/helloWorld.inc>\n"
err = addOrUpdateOSLCDXLService("helloWorld", "Hello world in several languages", dxlCode, "getHelloString")
if (!null err)
{
print err
}
else
{
print "Installed Service\n"
}
Rufen Sie dann den Service auf. Der URI entspricht in etwa dem folgenden Beispiel: http://Servername:Portnummer/dwa/rm/dxl/helloWorld
Legen Sie sowohl für den Header accept als auch für den Header content-type den folgenden Eintrag fest: application/rdf+xml.
Der Aufforderungsinhalt sollte in etwa dem folgenden Code entsprechen:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
<doors:Arguments>
<doors:arguments>English</doors:arguments>
</doors:Arguments>
</rdf:RDF>
Die wichtigsten Felder sind die Felder des Typs doors:arguments. Sie enthalten alle Parameter, die für das ordnungsgemäße Ausführen des Scripts erforderlich sind. Fehlen welche oder sind die Parameter nicht ordnungsgemäß angeordnet, schlägt der Aufruf fehl.
Der Antwortinhalt würde in etwa dem folgendem Code entsprechen:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
<doors:DxlServiceResult rdf:about="http://my-desktop:8080/dwa/rm/dxl/helloWorld>
<doors:result>Hello world</doors:result>
</doors:DxlServiceResult>
</rdf:RDF>
Es wird kein Marshalling vom Service durchgeführt. Argumente sind im Zeichenfolgeformat angegeben, aus dem das DXL-Script Werte extrahiert und diese dann in die erwarteten einzelnen Parameter konvertiert.