Rational uses technology that is based on Open Services for Lifecycle Collaboration (OSLC) to improve integration with Rational applications and other IBM and third-party tools. OSLC service discovery is extensible. Therefore, Rational and third-party developers can add services that are not currently available in the implemented standard or that are considered too specialized for inclusion in current or future versions.
The Rational DOORS implementation of the OSLC Requirements Management (RM) specification version 2 includes an API that you can use to run Rational DOORS DXL scripts with the HTTP or HTTPS protocol. This API adds extra value to integrations by enabling you to access and manipulate Rational DOORS data securely and safely. It is based on the concept of a DXL script library. Administrators can easily add, edit, and remove DXL scripts by using the OSLC DXL Services user interface.
The scripts are controlled and customized by the Rational DOORS administrator, who can decide which DXL scripts are available in the service interface. The administrator can lock the ability to call certain functions that might be regarded as a potential security risk, such as "runDXL". Certain DXL, such as user interface widgets, are not supported.
Because service discovery is protected by OAuth, if you use the OSLC DXL service, you must authenticate by typing your user name and password.
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"
}
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"
}
<?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>
<doors:Arguments>
<doors:arguments>English,French</doors:arguments>
</doors:Arguments>
The
receiving DXL service splits the comma-separated list into the separate
English and French strings.<?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>
The service does not do any marshalling. Specify arguments as a single string. The DXL script parses and extracts values from the string before it converts them to the expected individual parameters.