OSLC CM Implementation Reports

Implementers of the OSLC CM specifications are encouraged to place feedback on their experience (good and bad). To add a report, simply copy and paste a section template and fill out any necessary information.

OSLC CM 2.0

This section gathers implementation reports for OSLC CM 2.0

Rational Change (2.0 support)

Contact information:

Details about support:

  • OSLC CM 2 service provider
  • OSLC CM 1 service provider

Table of supported capabilities:

Requirement

Level

Supported?

Notes

Unknown properties and content

MAY / MUST

Y

Unknown properties are discarded in GET, PUT, and POST operations.

Resource Operations

MUST

Y

Resource shape via =oslc:instanceShape=

MAY

Y

For CRs, but not the query results wrapping object.

Resource state predicates

MAY

Y

A Change admin must edit the CR lifecycle to assign predicates to custom states. Can be viewed and used in queries.

Resource Paging

MAY

Y

Partial Resource Representations

MAY / MUST

Y

Partial Update using PUT + =?oslc.properties=

MAY

Y

Partial Update using PATCH

MAY

N

Service Provider Resource

MUST

Y

Service Provider Catalog Resource

MAY

Y

Creation Factories

MUST

Y

One factory for each START_HERE2<State> transition.

Creation Factories Shapes

MAY

Y

Query Capabilities

MUST

Y

Query Syntax =oslc.where=

MUST

Y

Scoped queries (e.g., change:duplicate{dcterms:identifier=”1”}) only work with relationships between CRs in the same repository.

Queries against user attributes must compare against the absolute URLs to the person. You cannot query based on the properties of users.

Query Syntax =oslc.select=

MUST

Y

Query Syntax =oslc.searchTerms=

MAY

Y

Query Syntax =oslc.orderBy=

MAY

Y

Query Shapes

MAY

Y

Query Results Paging

MAY

Y

Delegated UI Selection Dialog

MUST

Y

Delegated UI Create Dialog

MUST

Y

Delegated UI Create Dialog with Prefill

MAY

Y

UI Preview

SHOULD

Y

HTTP Basic Authentication

MAY

Y

OAuth Authentication

SHOULD

N

Error Responses

MAY

Y

RDF/XML Representations

MUST / SHOULD

Y

XML Representations

MUST

Y

Requests for XML always return RDF/XML.

JSON Representations

MUST

Y

HTML Representations

SHOULD

Y

For change requests only; not query results.

Also support CM 1.0

n/a

Y

Additional details about support: (not noted in table)

  • CmExperimental
    • woami service
  • Subset of specs supported
    • oslc.prefix is ignored. Assumes default prefixes.
    • oslc.where mostly supported
      • Cannot match against attributes of a person, full URLs o 'person's must be used.
      • OSLC resources in other repositories (linked from a local CR) cannot be queried against. Links to them can be returned in queries results with oslc.select.

Issues:

  1. Missing support for "oslc_cm:label" attribute for links to remote repositories as in OSLC-CM 1.0. This used to allow pretty names for links (chosen for the client when adding links) if the provider does not have the log in information for the remote repository. It's having HTML <A>s with HREFs, but no innerText.
  2. Vague on how "user" attributes are handled. Must each person they have a URL to a separately retrievable foaf:Person resource. Is the URL the only unique handle to a person?
  3. Partial update via PATCH seems overly complex for a logically simple operation.Fortunately it's optional.

Worked well:

  • Consistent resource representations (ServiceProviders? to ChangeRequests? are all just resources)
  • Summary/check list of capabilities made it simpler to know exactly what needs to be implemented.

Rational ClearQuest?

Contact information:

  • Contacts: SamPadgett
  • This capability was implemented in Rational ClearQuest? 7.1.2.

Details about support:

  • OSLC CM 2.0 Service Provider
  • OSLC CM 1.0 Service Provider

Table of supported capabilities:

Requirement Level Supported? Notes
Unknown properties and content MAY / MUST Y  
Resource Operations MUST Y  
Resource shape via oslc:instanceShape MAY N  
Resource state predicates MAY Y* * Requires schema changes by a ClearQuest? administrator
Resource Paging MAY N  
Partial Resource Representations MAY / MUST Y  
Partial Update using PUT + ?oslc.properties MAY Y  
Partial Update using PATCH MAY N  
Service Provider Resource MUST Y  
Service Provider Catalog Resource MAY Y  
Creation Factories MUST Y  
Creation Factories Shapes MAY N  
Query Capabilities MUST Y  
Query Syntax oslc.where MUST Y* * Some advacned capabilities missing
Query Syntax oslc.select MUST Y  
Query Syntax oslc.searchTerms MAY Y* * Does not work currently in conjunction with oslc.where
Query Syntax oslc.orderBy MAY Y  
Query Shapes MAY N  
Query Results Paging MAY Y  
Delegated UI Selection Dialog MUST Y  
Delegated UI Create Dialog MUST Y  
Delegated UI Create Dialog with Prefill MAY Y  
UI Preview SHOULD Y  
HTTP Basic Authentication MAY Y  
OAuth Authentication SHOULD Y  
Error Responses MAY Y  
RDF/XML Representations MUST / SHOULD Y* * Only a subset of RDF/XML is supported on PUT and POST requests
XML Representations MUST Y  
JSON Representations MUST Y  
HTML Representations SHOULD Y* * For records only
Also support CM 1.0 n/a Y  

Additional details about support: (not noted in table)

  • Subset of specs supported and why:
    • oslc.where is not fully supported. Missing features:
      • wildcard (*) support on identifiers
      • queries on URI references (partial support is there)
      • typed literals, for instance: "42"ˆˆxsd:integer
      • LANGTAG, for instance: "Bonjour"@fr
    • =oslc.prefix= is not fully supported
  • Deviations from specs and why:
    • oslc.searchTerms does not work in conjunction with oslc.where and oslc.select. This isn't possible give how full text search is currently implemented in the ClearQuest? Core.
  • Any CmExperimental Items Implemented
    • The 'whoami' service

Issues:

  1. It's difficult to map ClearQuest? fields to standard OSLC ChangeRequest? properties since ClearQuest? is completely customizable. Our long-term solution is to give ClearQuest? administrators a UI to configure these field mappings.
  2. The OSLC CM 2.0 specification only defines one resource type: ChangeRequest? . Many records in ClearQuest? (components, projects, and so on) are not change requests, so it's not clear how these resources should be represented.
  3. You can't tell from the service description document alone which resources accept links. This is key for many bridge-style integrations. Consumers might accomplish this through resource shapes, but it would require many requests from the consumer (one for each dialog) and unnecessary overhead.
  4. There's a need to launch delegated UIs for actions on existing records, not just for creating new records. This would help at least two ClearQuest? integrations: UCM (CC-CQ) and DOORS-CQ.
  5. More comprehensive test suites to validate service providers would help future implementations.

Worked well:

  • OSLC CM 2.0 is a clear improvement over 1.0. Common service discovery and other capabilities across domains mean you only need to write your code once and can still work with CM, RM, and QM providers. You can also do more with the REST API without any knowledge about the specific provider you are connecting to.
  • Several integrations with ClearQuest? already using OSLC 2.0 have validated the approach.
  • We were able to build upon our 1.0 implementation to quickly implement a 2.0 provider.
  • The OSLC-Core-Version header helped us maintain backwards compability with older releases while still offerring 2.0 features.

Rational DOORS

Contact information:

  • Reported by BrianSteele
  • This capability was implemented in DOORS 9.3

Details about support:

  • OSLC CM 2.0 Consumer

Table of supported capabilities:

Requirement Level Supported? Notes
Unknown properties and content MAY / MUST Y  
Resource Operations MUST Y  
Resource shape via oslc:instanceShape MAY N  
Resource state predicates MAY Y  
Resource Paging MAY N  
Partial Resource Representations MAY / MUST Y  
Partial Update using PUT + ?oslc.properties MAY Y  
Partial Update using PATCH MAY N  
Service Provider Resource MUST Y  
Service Provider Catalog Resource MAY Y  
Creation Factories MUST N  
Creation Factories Shapes MAY N  
Query Capabilities MUST Y  
Query Syntax oslc.where MUST Y  
Query Syntax oslc.select MUST Y  
Query Syntax oslc.searchTerms MAY N  
Query Syntax oslc.orderBy MAY N  
Query Shapes MAY Y  
Query Results Paging MAY N  
Delegated UI Selection Dialog MUST Y  
Delegated UI Create Dialog MUST Y  
Delegated UI Create Dialog with Prefill MAY Y  
UI Preview SHOULD N  
HTTP Basic Authentication MAY Y  
OAuth Authentication SHOULD N Targeted for DOORS 9.3.0.1
Error Responses MAY Y  
RDF/XML Representations MUST / SHOULD Y  
XML Representations MUST Y  
JSON Representations MUST N  
HTML Representations SHOULD N  
Also support CM 1.0 n/a N  

Additional details about support: (not noted in table)

Issues:

  1. State predicates do not give as much granularity as we would like for query purposes. Having a predicate map to more than one state can result in large result sets that must be pruned.
  2. Inability to use OR in queries.

Worked well:

  • Able to use common properties such as dcterms:title, dcterms:description, oslc:shortTitle, oslc_cm:status as query filters and property filters
  • Creating links using common link properties such as oslc_cm:tracksRequirement and oslc_cm:implementsRequirement

<2.0 template>

<Implementer> (copy and update template)

Contact information:

  • Reported by...
  • This capability was implemented in...

Details about support:

  • Specification version supported: OSLC CM 2.0
  • Implementation supported: <consumer> and/or <service provider>

Table of supported capabilities:

Requirement Level Supported? Notes
Unknown properties and content MAY / MUST Y or N  
Resource Operations MUST Y or N  
Resource shape via oslc:instanceShape MAY Y or N  
Resource state predicates MAY Y or N  
Resource Paging MAY Y or N  
Partial Resource Representations MAY / MUST Y or N  
Partial Update using PUT + ?oslc.properties MAY Y or N  
Partial Update using PATCH MAY Y or N  
Service Provider Resource MUST Y or N  
Service Provider Catalog Resource MAY Y or N  
Creation Factories MUST Y or N  
Creation Factories Shapes MAY Y or N  
Query Capabilities MUST Y or N  
Query Syntax oslc.where MUST Y or N  
Query Syntax oslc.select MUST Y or N  
Query Syntax oslc.searchTerms MAY Y or N  
Query Syntax oslc.orderBy MAY Y or N  
Query Shapes MAY Y or N  
Query Results Paging MAY Y or N  
Delegated UI Selection Dialog MUST Y or N  
Delegated UI Create Dialog MUST Y or N  
Delegated UI Create Dialog with Prefill MAY Y or N  
UI Preview SHOULD Y or N  
HTTP Basic Authentication MAY Y or N  
OAuth Authentication SHOULD Y or N  
Error Responses MAY Y or N  
RDF/XML Representations MUST / SHOULD Y or N  
XML Representations MUST Y or N  
JSON Representations MUST Y or N  
HTML Representations SHOULD Y or N  
Also support CM 1.0 n/a Y or N  

Additional details about support: (not noted in table)

  • Subset of specs supported and why:
    • ...
  • Deviations from specs and why:
    • ...
  • Any CmExperimental Items Implemented
    • ...

Issues:

  1. <issues>

Worked well:

  • <good things>

OSLC CM 1.0

This section gathers implementation reports for OSLC CM 1.0

Rational ClearQuest

Contact information:

Details about support:

  • Specification version supported: OSLC CM 1.0
  • Implemenation supported: service provider
  • Detailed information: ClearQuest REST API
  • Subset of specs supported and why:
    • prefill of submission dialog not supported, fix planned
    • exploratory support of "ChangeRequest" resource. CQ has a very flexible model and no transformation framework. We provided an experimental XSL backend that allows this to work
  • Deviations from specs and why:
    • don't fully support oslc_cm:collref as spec'd: missed during testing, will fix in upcoming fixpack

Issues:

  1. Consumers had issues with relative paths in service description document

Worked well:

  • Consistent JSON/XML formats
  • Consumers have found inlined properties to be very useful to limit the number of requests they need to make
  • Service Discovery
  • Delegated Web UIs work very well. Supporting the window.name IFrame protocol is tricky, but necessary for older browser support. Maybe we need a consumable Javascript library (that doesn't require Dojo) which hides some of the messy details from OSLC consumers.
  • Sample application showing the integration early on worked well

Tasktop ClearQuest Connector

Contact information:

Details about support:

  • Specification version supported: OSLC CM 1.0
  • Implemenation supported: consumer of ClearQuest? OSLC api
  • ...

Issues:

  1. Need ServiceDescriptor? to contain additional element describing the request path for a change request given its identifier. This could eliminate problems when the repository location changes domains. I.e. if the domain changes, clients only need to update info from the service descriptor without need to update stale data in cached change requests themselves.
  2. Need clarification on rdf:about vs rdf:resource attribute usage in ChangeRequest? (which is correct?)
  3. Example response documents for a Simple Query would be useful

Worked well:

  • Service discovery to easily guide user through repository selection
  • Service discovery of available services for programatic access
  • OSLC simple query support
  • ...

Rational Team Concert (RTC) 2.0

Contact information:

Details about support:

Issues:

  1. ATOM format for result sets questionable. It is expensive to generate because it requires additional information that is not automatically part of the result set (and in most cases is not needed by clients anyway). Most of our clients clearly prefer the simple xml and json formats.

Worked well:

  • Selective and inlined properties: you can get exactly what you need.
  • Support for simple to use JSON format.

Rational Quality Manager (RQM) 2.0

Contact information:

Details about support:

  • Specification version supported: OSLC CM 1.0
  • Implementation supported: consumer

Issues:

  1. No recommended or suggested specification for establishing back link

Worked well:

  • <TBD>

OSLC-CM V1 demo server in PHP (oslcv1-demo-server-php)

Well, this is not yet a real OSLC-CM server, as it's only a protoype and lacks many features, but we hope it could be covering the whole of OSLC-CM V1 some day (when its 1.0 version will be released).

Still, it may help test client tools. More details at : https://picoforge.int-evry.fr/cgi-bin/twiki/view/Oslc/Web

Sorry, not following the template, as it's not really a real implementation so far. -- OlivierBerger - 02 Dec 2009

Add-on for Mantis 1.2

Contact information:

Details about support:

  • Target Specification version to be supported: OSLC CM 1.0
  • Implemenation supported: provider

Issues:

  1. Not yet complete OSLC-CM V1 : work in progress

Worked well:

  • <TBD>

Rational Change (1.0 support)

Contact information:

Details about support:

  • Target Specification version to be supported: OSLC CM 1.0
  • Implemenation supported: provider

Issues:

  1. So many namespaces!
  2. So many ways to get a URL (rdf:about, oslc_cm:resource, atom links).
  3. Unlike a more traditional, procedural API, it's hard to know what OSLC even does from the spec, which is about REST style resources more than operations. A quick high-level summary of all the supported operations (ad-hoc query, modify CR, etc.) and pointers to the relevant details in the spec could make it faster to understand
  4. Multiple return formats (JSON, XML) were easy enough to implement, but make for somewhat tedious testing. I can see how both formats are useful to different consumers though. Not a big deal.
  5. No standard test suite means I don't really know if my implementation is "done" or correct. I essentially used RQM as a client as the de facto test suite, though it doesn't provide complete coverage of everything in OSLC. This was my biggest issue.
  6. URLs seem awfully fragile since they capture the hostname and port of the Change server at the time the request was made. Customers often upgrade and rename hardware, meaning any URLs stored in, say, RQM will go rancid on us.
  7. Lots of missing stuff (obviously): getting a list of possible properties, required properties, handling attachments, etc.

Worked well:

  • Basic-auth made for an easy authentication scheme.
  • Atom doesn't seem like a very convenient wrapper format, but it's nice that IE and Firefox both know how to display. It's easier to debug a query that way or explain OSLC to someone when there's something a little more tangible to see than just XML.
  • OSLC happened to map pretty closely to how Change already works. Coincidence or an artifact of careful planning and a relatively small set of operations in 1.0?

Rally Software

Contact information:

  • MarkRinger
  • As of May 2010, we are just starting to code our first OSLC Consumer using ClearQuest? as the provider. We already have a ClearQuest? Connector using the old COM API so are not in a huge hurry to release. But, we do want to support OSLC and see it as a much easier spec to implement, it will make support of the connector simpler, and will also provide leverage and learning for us as more ALM tools support OSLC.

Details about support:

  • Specification version supported: OSLC CM 1.0
  • Implemenation supported: consumer
  • Deviations from specs and why:
    • Plan to use custom ClearQuest? endpoints for custom fields and actions

Issues:

  1. Just starting. More soon...

Worked well:

  • Just starting. More soon...

<1.0 template>

<Implementor> (copy and update template)

Contact information:

  • Reported by...
  • This capability was implemented in...

Details about support:

  • Specification version supported: OSLC CM 1.0
  • Implemenation supported: <consumer and/or service provider>
  • Subset of specs supported and why:
    • ...
  • Deviations from specs and why:
    • ...

Issues:

  1. <issues>

Worked well:

  • <good things>
Topic revision: r27 - 01 Sep 2010 - 18:31:02 - BrianSteele
 
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our Terms of Use
Ideas, requests, problems regarding this site? Send feedback