The factory to create Jira issues using OSLC vocabulary is declared on the Service Provider representing the Jira project.
To determine the URL of the OSLC creation factory:
<oslc:Service>
XML element whose <oslc:domain>
is
http://open-services.net/ns/cm#
for Change Management or http://open-services.net/ns/qm#
for Quality Management.<oslc:CreationFactory>
XML element whose <oslc:resourceType>
is the required one.
Domain | Resource Type | Resource Type URL |
---|---|---|
Change Management | Change Request | http://open-services.net/ns/cm#ChangeRequest |
Quality Management | Test Case | http://open-services.net/ns/qm#TestCase |
Test Plan | http://open-services.net/ns/qm#TestPlan |
|
Test Execution Record | http://open-services.net/ns/qm#TestExecutionRecord |
|
Test Result | http://open-services.net/ns/qm#TestResult |
|
Test Script | http://open-services.net/ns/qm#TestScript |
<oslc:resourceShape>
XML element that defines the URL for
fetching the resource type and knowing what properties are editable.<oslc:creation>
XML element that defines the URL for the creation factory.<rdf:RDF ... <oslc:ServiceProvider rdf:about="https://SERVER:PORT/rest/oslc/1.0/cm/project/PROJECT-ID"> <oslc:service> <oslc:Service> <oslc:domain rdf:resource="http://open-services.net/ns/cm#"/> <oslc:creationFactory> <oslc:CreationFactory> <oslc:resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/> <oslc:resourceShape rdf:resource="https://SERVER:PORT/rest/oslc/1.0/cm/resourceShape/PROJECT-ID/ChangeRequest"/> <oslc:creation rdf:resource="https://SERVER:PORT/rest/oslc/1.0/cm/PROJECT-ID/ChangeRequest"/> </oslc:CreationFactory> </oslc:creationFactory> ... </oslc:Service> </oslc:service> </rdf:Description> </rdf:RDF>
<rdf:RDF ... <oslc:ServiceProvider rdf:about="https://SERVER:PORT/rest/oslc/1.0/qm/project/PROJECT-ID"> ... <oslc:service> <oslc:Service> <oslc:domain rdf:resource="http://open-services.net/ns/qm#"/> <oslc:creationFactory> <oslc:CreationFactory> <oslc:resourceType rdf:resource="http://open-services.net/ns/qm#TestCase"/> <oslc:resourceShape rdf:resource="https://SERVER:PORT/rest/oslc/1.0/qm/resourceShape/PROJECT-ID/TestCase"/> <oslc:creation rdf:resource="https://SERVER:PORT/rest/oslc/1.0/qm/PROJECT-ID/TestCase"/> </oslc:CreationFactory> </oslc:creationFactory> ... </oslc:Service> </oslc:service> </rdf:Description> </rdf:RDF>
POST
Authorization
: Jira user and password encoded as BASIC authenticationAccept
: application/rdf+xml
Content-Type
: application/rdf+xml
OSLC-Core-Version
: 2.0
<rdf:RDF ... <rdf:Description> <rdf:type rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/> <dcterms:type rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Task</dcterms:type> <dcterms:title rdf:parseType="Literal">My Task issue created through the creation factory</dcterms:title> </rdf:Description> </rdf:RDF>
<rdf:RDF ... <rdf:Description> <rdf:type rdf:resource="http://open-services.net/ns/qm#TestCase"/> <dcterms:type rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Test</dcterms:type> <dcterms:title rdf:parseType="Literal">My Test issue created through the creation factory</dcterms:title> </rdf:Description> </rdf:RDF>
Important considerations to have in mind:
rdf:type
property value must match the one of the oslc:resourceType
property in the creation factory.dcterms:type
property value must match one of the listed oslc:allowedValue
in the resource shape as any other property.dcterms:title
property is, along with the two above, the only three mandatory properties to use the factory
(the jira:reporter
property is also mandatory to Jira but it is set to the requesting user by default if not specified).dcterms:creator
is read-only and it is always set to the requesting user.X-oslc-connect-resource-edition-skip-screen-checking
header.Here is a response sample for one of the requests above:
<rdf:RDF ... <rdf:Description rdf:about="https://SERVER:PORT/rest/oslc/1.0/cm/issue/ISSUE-KEY"> <dcterms:creator rdf:resource="https://SERVER:PORT/rest/oslc/1.0/cm/user/PROJECT_ID"/> <oslc_cm:inprogress rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc_cm:inprogress> <dcterms:type>Task</dcterms:type> <dcterms:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2025-07-01T16:58:05.596Z</dcterms:modified> <dcterms:created rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2025-07-01T16:58:05.596Z</dcterms:created> <process:projectArea rdf:resource="https://SERVER:PORT/rest/oslc/1.0/process/project-area/PROJECT_ID"/> <acc:accessContext rdf:resource="https://SERVER:PORT/rest/oslc/1.0/acclist#10000"/> <oslc:instanceShape rdf:resource="https://SERVER:PORT/rest/oslc/1.0/cm/resourceShape/PROJECT_ID/issue"/> <oslc_cm:status>To Do</oslc_cm:status> <oslc_cm:closed rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc_cm:closed> <oslc:shortId>ISSUE-KEY</oslc:shortId> <rdf:type rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/> <dcterms:title rdf:parseType="Literal">My issue created through the creation factory</dcterms:title> <oslc:serviceProvider rdf:resource="https://SERVER:PORT/rest/oslc/1.0/cm/project/PROJECT_ID"/> <dcterms:identifier>ISSUE-KEY</dcterms:identifier> <oslc_cm:approved rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc_cm:approved> <oslc:shortTitle rdf:parseType="Literal">ISSUE-KEY</oslc:shortTitle> <oslc_cm:fixed rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc_cm:fixed> <jira:reporter rdf:resource="https://SERVER:PORT/rest/oslc/1.0/cm/user/PROJECT_ID"/> </rdf:Description> </rdf:RDF>