L3 - quality-manager/onboarding GitHub Wiki
Create Task-Development workitem and includes:
- A link to the corresponding Salesforce Skills case (Use the "Add Related Artifacts" link)
- Set the "Planned For" field to the specific Version/Ifix that will be needed for the customer's environment
- Add the "debug_patch" tag
- Include a detailed summary of the issue. This should contain a description of the initial issue, troubleshooting steps that have been performed, the current state of the issue, and why a debug patch is needed
- Add approvals for ETM L3 Lead and ETM Development Lead. These need to be approved before any coding is started
Once the Changes Sets are complete and linked to the workitem, add a review for a member of the core development team. Use https://jazz.net/wiki/bin/view/Main/RQMDevelopmentMain#Team as a guide to select developer familiar with the area of code being modified The Review should consist of:
- Code Verification
- Additional input that would benefit the core issue
- Evaluation of the changes for inclusion in the Mainline code
Once reviewed the code is ready to be sent to the customer (Include the link to Tools/Fix portal ). If the Mainline Evaluation is approved:
- Create a copy of the Task-Development with the Planned For set to
- Add the Change Sets and deliver (This will require two additional reviews before delivery)
- Add the tag so that the task will be tagged as a backport candidate. In General this will mean a backport to GA and GA-1
Resolve/Close the workitem once the customer issue is resolved and or the patch is not longer necessary
Note: For information pertaining to Best Practices for logging code see https://jazz.net/wiki/bin/view/Main/Serviceability-Logging
When submitting a defect please be sure to include the following information
- The version(s) in which the issue can be reproduced
- A detailed set of steps to reproduce the issue
- Connection details to a test environment where the issue can be reproduced (if applicable)
- Logs and screenshots of the issue (if applicable)
- A link (Add Related Artifacts) to the corresponding Salesforce Skills Case. Use the format "SF TSnnnnnnn" for the label field
The current supported Maintenance Releases (As of November 2021)
- 7.0.2
- 7.0.1
- 7.0
- 6.0.6.1
- 6.0.6
Note: If these posted targets do not work, we need to resolve the target from the latest maintenance stream build, for example, 7.0.2 maintenance workspace was throwing target loading issues, we checked the latest maintenance build here and got this target which was being used: https://jazzweb.ratl.swg.usma.ibm.com/ETM/7.0.2/I/offerings/
Prior to delivery
- Change Set(s) should be tested within the Development Environment using the 'Steps to Reproduce' from the corresponding defect If this not possible (For example a specific integration is needed as a part of the testing scenario), a patch should be created and added to the latest successful build from the stream in question. The Patch can be used in the the environment where the issue is reproducible
- Automated testing
- RQM/ETM ETM JUnits, ETM/RQM LIT JUnits should be run prior to delivery with the results attached
- The appropriate automated tests (RQM/ETM Reportable REST API JUnits and OSLC API JUnits) should be run within your development environment. See 'Running the ETM Reportable REST API JUnits and OSLC QM API JUnits' https://github.com/quality-manager/onboarding/wiki/L3
- Development review
While doing review - Reviewer should look for following case while reviewing java files. If any of change is done for a method then
- Look for all the java class files where that method is called from.
- Ensure all those class files are changed as well.
- If any of the class file calling that method is not changed and code is compiling correctly, then put a comment to change the file calling that changed method.
This special consideration is added to workaround one of the limitation of Patch Service that it only picks up changed files. For some reason if calling methods is not picked up by patch service then it may cause run time error expecting older method signature which wont be available.
- Deliver to Stream
Note: Be sure to check the "APAR Information" tab of the Defect being backported for any additional information to be considered during this process. This information can be (but not limited) to:
- Any identified dependencies
- Any special instructions or pointers
- Other information that can be useful before back porting this fix.
After Delivery
- Verification should be done on the available Maintenance servers (http://maintportal.rtp.raleigh.ibm.com/) Note: If this not possible to Verify on the Maintenance servers (For example a specific integration is needed as a part of the testing scenario), a patch should be created and added to the latest successful build from the stream in question. The Patch can be used in the the environment where the issue is reproducible. It would be beneficial to document the Build ID of the patch that was used (e.g. ELM_server_patch_7.0.0.0-ELM700M-I20200507-0352.zip)
- Verify by using the 'Steps to Reproduce' from the corresponding defect
- Run following Test Case to validate duplicate test plan across project works fine:13797:Copy artifact across the project areas- REST API/OSLC API
- Check the QM Log (Use Repodebug) for the errors within the time-frame of the verification process (Possible regression or other types of issues)
- Automated testing
- Running the RQM maintenance Tests build (running the RQM/ETM ETM JUnits and ETM/RQM LIT JUnits).
- Running the QMI maintenance stream build (running the RQM/ETM Reportable REST API JUnits, and OSLC API JUnits).
- There may be rare occasions in which we are unable to verify a back-port because of the nature of the issue (Performance related, edge case...etc); this should be noted in the Maintenance Item with a brief explanation on the situation.
-
Changing method signatures (return type, parameter(s), and thrown exceptions), static constants, etc. require all callers to be updated (e.g. code comment) so they are picked up by the patch generator.
-
Feature work or enhancements.
-
Model or DB schema changes
-
API breaking changes 5)No translation is provided as part of iFix deliveries
-
Changes that break migration or n-1 compatibility
-
Any version number changes
-
Changes that cause system requirements change
-
Fixes that are not available in the main streams for the next continuous delivery release. (Fixes should be backports in general. A governance model is required for the rare cases that fixes have to be implemented in fix stream first. They should be forward ported to current release as soon as possible.)
-
Instrumental changes for debugging purpose.
-
No code change to third party library. (Requires legal approval)
-
Fixes containing new/updated strings that appear in the UI/logs/etc. will not be loaded by the patch service (note, they are picked up by the patch generator). See 505501 Message file not loaded from iFix patch file.
-
Patch Service Limitations: Patch service by design only work for OSGI bundles in the same JVM as the Jazz Server. Thus it does NOT work for the following: Not for any client side patching. (see below) JRE update itself Any native components. Such components are: RM native browser Add-ons QM MS Word/Excel importer RCL native library
-
See 67594: Patch Generator & Service Limitations for additional limitations
- Do not delivery unused imports (see https://github.com/quality-manager/onboarding/wiki/RTC-Client-Setup#set-the-java-preferences-in-eclipse).
- When to backport a defect: The defect has the status Closed and resolution Fixed. The defect is FVTed in the sprint it was fixed. Typically, the sprint FVT cycle is completed on Monday/Tuesday of the last week of the sprint.
For additional information see https://jazz.net/wiki/bin/view/Main/CLMMaintenanceForContinuousDelivery https://jazz.net/wiki/bin/view/Main/FAQsForContinuousMaintenance
When a backport (maintenance item) or test fix (development-item) contains ETM Reportable REST API and/or OSLC QM API product or test code changes, the ETM Reportable REST API JUnits and/or OSLC QM API JUnits must be run.
Steps to run the ETM Reportable REST API JUnits and OSLC QM API JUnits:
-
Open the RTC/Eclipse client with a workspace on the Quality Manager <iFix version> Maintenance stream.
-
Refresh the development target.
-
Ensure there are no compilation errors.
-
Generate a repository workspace with the following configuration:
<listEntry value="createTestProjectAreas|value=true"/>
Source: /com.ibm.rqm.predefined.targets/launches/QM Initialize 4.0.launch
-
Optionally, backup the generated repository workspace (jazz-repo).
-
Run the ETM development server with the following configuration:
<listEntry value="com.ibm.team.repository.vvc.activationKey|value=2f93e733-112e-3d24-a7b2-88a2ea502593"/>
Source: /com.ibm.rqm.predefined.targets/launches/RQM-sample.launch
-
Run the affected JUnits (Configuration Management-disabled) using the following configuration:
ETM Reportable REST API JUnits:
<listEntry value="testClasses|value=<comma-delimited list of ETM Reportable REST API JUnit classes>"/>
< listEntry value="includeTestMethods|value=<comma-delimited list of ETM Reportable REST API JUnit methods>"/>Source: /com.ibm.rqm.xml.tests/launches/RQM Reportable REST API JUnits.launch
OSLC QM API JUnits:
<listEntry value="com.ibm.rqm.oslc.test.testClasses|value=<comma-delimited list of OSLC QM API JUnit classes>"/>
<listEntry value="com.ibm.rqm.oslc.test.includeTestMethods|value=<comma-delimited list of OSLC QM API JUnit methods>"/>Source: /com.ibm.rqm.oslc.tests/launches/OSLC API JUnits.launch
-
Export the local JUnit XML logs and attach to the maintenance item or development-task.
-
Run the affected JUnits (Configuration Management-enabled) using the following configuration:
OSLC QM API JUnits:
<listEntry value="com.ibm.rqm.oslc.test.testPLE|value=true"/>
<listEntry value="com.ibm.rqm.oslc.test.testFGC|value=true"/>
<listEntry value="com.ibm.rqm.oslc.test.testClasses|value=<comma-delimited list of OSLC QM API JUnit classes>"/>
<listEntry value="com.ibm.rqm.oslc.test.includeTestMethods|value=<comma-delimited list of OSLC QM API JUnit methods>"/>Source: /com.ibm.rqm.oslc.tests/launches/OSLC API JUnits.launch
Note, the ETM Reportable REST API JUnits do not support CM-enabled projects (that is, they run the same in a CM-enabled and CM-disabled projects) so these JUnits do not need to be run in a CM-enabled project (see 151625: Support CM-enabled projects for the RQM Reportable REST API JUnits.).
-
Export the local JUnit XML logs and attach to the maintenance item or development-task.
-
Alternatively, run the smoke JUnits (Configuration Management-disabled) using the following configuration:
ETM Reportable REST API JUnits:
Source: /com.ibm.rqm.xml.tests/launches/RQM Reportable REST API Smoke JUnits.launchOSLC QM API JUnits:
Source: /com.ibm.rqm.oslc.tests/launches/OSLC API Smoke JUnits.launch -
Export the local JUnit XML logs and attach to the maintenance item or development-task.
-
Alternatively, run the smoke JUnits (Configuration Management-enabled) using the following configuration:
OSLC QM API JUnits:
<listEntry value="com.ibm.rqm.oslc.test.testPLE|value=true"/>
<listEntry value="com.ibm.rqm.oslc.test.testFGC|value=true"/>Source: /com.ibm.rqm.oslc.tests/launches/OSLC API Smoke JUnits.launch
Note, the ETM Reportable REST API JUnits do not support CM-enabled projects (that is, they run the same in a CM-enabled and CM-disabled projects) so these JUnits do not need to be run in a CM-enabled project (see 151625: Support CM-enabled projects for the RQM Reportable REST API JUnits.).
-
Export the local JUnit XML logs and attach to the maintenance item or development-task.
Steps to resolve QMI build failures:
-
A defect is opened when two consecutive QMI builds fail due to test failures (no pipeline issues).
-
The defect must contain links to the failing QMI builds (CM and NOCM).
-
Open the failing QMI build (NOCM).
-
In the Tests tab, expand all the failures.
-
Copy all the fail test suites/cases and create a comma-delimited list of test suite(s) (without the package) and test case(s) (without the brackets). For example:
ETM Reportable REST API JUnits:
Test suite(s): ExecutionscriptJaxbHelperTest,ExecutionstepresultJaxbHelperTest
Test case(s): testPutResourceScopedInProjectArea,testResourceIncludeArchived,testResourceNotFoundOSLC QM API JUnits:
Test suite(s): TestSuiteResultTest,TestDataTest
Test case(s): testCreateUpdateRemoveCategoriesInResource,testRdfFeed,testAtomFeedTip: To create a comma-delimited list of test suite(s) (without the package) and test case(s) (without the brackets)
- Open the browser to the Tests tab of the build page
- Expand each test suite manually that you wish to capture test case names.
- Enter this line into the browser console
Array.from(Array.from(window.document.querySelectorAll('td:first-of-type .cellWrapper[style="padding-left: 4.5em;"] text')).map(a => a.innerText).reduce( (prev, curr) => prev.add(curr), new Set())).map(a => a.replace('()', '')).reduce( (prev, curr) => prev + ', ' +curr)
- This should produce a comma separated list you can paste into the launch config. If this fails, use alternative tip below
Alternative Tip: To create a comma-delimited list of test suite(s) (without the package) and test case(s) (without the brackets)
- Open the failing QMI build (NOCM) in the Eclipse client.
- In the Tests tab, expand all the failures.
- Select all (Ctrl + A) and copy (Ctrl + C).
- Paste (Ctrl + V) in a text editor.
- Copy (Ctrl + C) all the test suite(s) to a new text editor.
- In the text editor with the test suites(s), replace all instances of <new line>com.ibm.rqm.oslc.tests. (OSLC QM API JUnits) and <new line>com.ibm.rqm.xml.tests. (ETM Reportable REST API JUnits) with ,.
- In the text editor with the test cases(s), replace all instances of () with <nothing>.
- If duplicates exist, copy (Ctrl + C) and paste (Ctrl + V) the test cases(s) into Microsoft Excel, remove all duplicates, and copy (Ctrl + C) and paste (Ctrl + V) the test cases(s) back into the text editor.
- In the text editor with the test case(s), replace all instances of <new line> with ,.
-
Open the RTC/Eclipse client with a workspace on the Quality Manager <iFix version> Maintenance stream.
-
Refresh the development target.
-
Ensure there are no compilation errors.
-
Generate a repository workspace with the following configuration:
<listEntry value="createTestProjectAreas|value=true"/>
Source: /com.ibm.rqm.predefined.targets/launches/QM Initialize 4.0.launch
-
Optionally, backup the generated repository workspace (jazz-repo).
-
Run the ETM development server with the following configuration:
<listEntry value="com.ibm.team.repository.vvc.activationKey|value=2f93e733-112e-3d24-a7b2-88a2ea502593"/>
Source: /com.ibm.rqm.predefined.targets/launches/RQM-sample.launch
-
Run the failing JUnits locally using the following configuration:
ETM Reportable REST API JUnits:
<listEntry value="testClasses|value=ExecutionscriptJaxbHelperTest,ExecutionstepresultJaxbHelperTest"/>
< listEntry value="includeTestMethods|value=testPutResourceScopedInProjectArea,testResourceIncludeArchived,testResourceNotFound"/>Source: /com.ibm.rqm.xml.tests/launches/RQM Reportable REST API JUnits.launch
OSLC QM API JUnits:
<listEntry value="com.ibm.rqm.oslc.test.testClasses|value=TestSuiteResultTest,TestDataTest"/>
<listEntry value="com.ibm.rqm.oslc.test.includeTestMethods|value=testCreateUpdateRemoveCategoriesInResource,testRdfFeed,testAtomFeed"/>Source: /com.ibm.rqm.oslc.tests/launches/OSLC API JUnits.launch
-
Export the failing local JUnit XML logs and attach to the defect.
-
Open the failing QMI build (CM). Note, the ETM Reportable REST API JUnits do not support CM-enabled projects (that is, they run the same in a CM-enabled and CM-disabled projects) so these JUnits do not need to be run in a CM-enabled project (see 151625: Support CM-enabled projects for the RQM Reportable REST API JUnits.).
-
In the Tests tab, expand all the failures.
-
Copy all the fail test suites/cases and create a comma delimited list of test suite(s) (without the package) and test case(s) (without the brackets). For example:
OSLC QM API JUnits:
Test suite(s): *
Test case(s): testCreationInConfigbyConfigHeader,testUpdateInDifferentConfig,testDeletionInConfigTip: To create a comma-delimited list of test suite(s) (without the package) and test case(s) (without the brackets)
- Expand each test suite manually that you wish to capture test case names.
- Enter this line into the browser console
Array.from(Array.from(window.document.querySelectorAll('td:first-of-type .cellWrapper[style="padding-left: 4.5em;"] text')).map(a => a.innerText).reduce( (prev, curr) => prev.add(curr), new Set())).map(a => a.replace('()', '')).reduce( (prev, curr) => prev + ', ' +curr)
- This should produce a comma separated list you can paste into the launch config. If this fails, use alternative tip below
Alternative Tip: To create a comma-delimited list of test suite(s) (without the package) and test case(s) (without the brackets)
- Open the browser to the Tests tab of the build page
- Open the failing QMI build (NOCM) in the Eclipse client.
- In the Tests tab, expand all the failures.
- Select all (Ctrl + A) and copy (Ctrl + C).
- Paste (Ctrl + V) in a text editor.
- Copy (Ctrl + C) all the test suite(s) to a new text editor.
- In the text editor with the test suites(s), replace all instances of <new line>com.ibm.rqm.oslc.tests. (OSLC QM API JUnits) with ,.
- In the text editor with the test cases(s), replace all instances of () with <nothing>.
- If duplicates exist, copy (Ctrl + C) and paste (Ctrl + V) the test cases(s) into Microsoft Excel, remove all duplicates, and copy (Ctrl + C) and paste (Ctrl + V) the test cases(s) back into the text editor.
- In the text editor with the test case(s), replace all instances of <new line> with ,.
-
Run the failing JUnits locally using the following configuration:
OSLC QM API JUnits:
<listEntry value="com.ibm.rqm.oslc.test.testPLE|value=true"/>
<listEntry value="com.ibm.rqm.oslc.test.testFGC|value=true"/>
<listEntry value="com.ibm.rqm.oslc.test.testClasses|value=*"/>
<listEntry value="com.ibm.rqm.oslc.test.includeTestMethods|value=testCreationInConfigbyConfigHeader,testUpdateInDifferentConfig,testDeletionInConfig"/>Source: /com.ibm.rqm.oslc.tests/launches/OSLC API JUnits.launch
-
Export the failing local JUnit XML log and attach to the defect.
-
Fix the failing JUnits. Tips:
- For each local JUnit test case failure, check recent deliveries to the Quality Manager <iFix version> Maintenance stream since the last passing QMI build related to the test and/or product code.
- For each local JUnit test case failure, check the same test and/or product code in a previous/next maintenance release (or the current release) for relevant changes.
-
Re-run the failing JUnits.
-
Export the passing local JUnit XML logs and attach to the defect.
Set up the logs for OSLC:
-
log4j.logger.com.ibm.rqm.oslc.service=DEBUG
-
log4j.logger.com.ibm.rqm.process.deployment=DEBUG
-
log4j.logger.com.ibm.rqm.integration=DEBUG
Repeat the problematic scenario Check LDX for any skipped resource for ETM and/or invalid updates Check on the test case’s history tab, does it contain an entry adding the requirement link? Do an OSLC GET for the versioned test case that contains the link Review the problematic test case’s XML, it should contain a link to DNG with tag “validatesRequirement” Do an OSLC GET, this time use the LDX Header: User-Agent: LDX/1.0 Review the problematic test case’s XML, it should contain a link to DNG with tag “validatesRequirement”
(At this point, we can be sure that we are receiving the link.)
Download the TRS Feed from qm/trsConsole
Extract the zip file and look for the versioned test case url. NOTE: should be the versioned test case, not the concept
Search for create event for this version of the test case
Verify that no delete events are present for this version of the test case
Search for patch event and verify that it gets added to the right configuration (should start with “A”).
Verify that no delete patch events (starts with “D”) for this version should exist in this configuration
(At this point, we can be sure that we are sending the appropriate TRS events).
Go to LDX and run the following query assuring you have the right configuration selected in LDX query editor:
select * where {GRAPH ?g {<test_case_concept_resource_url> ?p ?o}}
Verify that “validatesRequirement” property exists and points to the requirement url
Also in LDX run the following query assuring you have the right configuration selected in LDX query editor:
prefix dcterms: http://purl.org/dc/terms/
prefix oslc_config: http://open-services.net/ns/config#
prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
SELECT ?sURL ?linkType ?tURL WHERE {
{
VALUES ?linkType {
<http://jazz.net/xmlns/prod/jazz/calm/1.0/implementsRequirementCollection>
<http://open-services.net/ns/qm#validatesRequirementCollection>
<http://open-services.net/ns/qm#validatesRequirement>
<http://open-services.net/ns/cm#implementsRequirement>
<http://open-services.net/ns/cm#affectsRequirement>
<http://open-services.net/ns/cm#tracksRequirement>
}
VALUES ?tURL {
<url_for_the_requirement>
}
?sURL ?linkType ?tURL.
}
OPTIONAL
{
?reification rdf:subject ?sURL .
?reification rdf:predicate ?linkType.
?reification rdf:object ?tURL.
?reification ?property ?release .
?release oslc_config:configuration ?config
}
FILTER (!BOUND(?reification) || ?config = http://www.w3.org/1999/02/22-rdf-syntax-ns#nil || ?config = <gc_url_for_the_configuration>)
}
ORDER BY ?tURL ?linkType ?sURL LIMIT 1000
-
Resolve the project area RDF/XML for the CM-enabled project area:
- Create a new test case or open an existing test case in the project area in the web UI.
- Copy the OSLC test case concept URL in the web UI.
- GET with the following request headers: Accept = application/xml OSLC-Core-Version = 2.0
- Resolve the project area URL (rdf:resource attribute) from the process:projectArea property in the test case RDF/XML.
- GET with the following request headers: Accept = application/xml
-
Resolve the OSLC test case resource shape RDF/XML for the CM-enabled project area:
- Create a new test case or open an existing test case in the project area in the web UI.
- Copy the OSLC test case concept URL in the web UI.
- GET with the following request headers: Accept = application/xml OSLC-Core-Version = 2.0
- Resolve the OSLC test case resource shape URL (rdf:resource attribute) from the oslc:instanceShape property in the test case RDF/XML.
- GET with the following request headers: Accept = application/xml OSLC-Core-Version = 2.0
-
Resolve the OSLC service provider catalog RDF/XML for the server and the OSLC service provider document RDF/XML for the CM-enabled project area:
- GET with the following request headers: Accept = application/xml
- Resolve the OSLC service provider catalog URL (rdf:resource attribute) from the oslc_qm:qmServiceProviders element (xmlns:oslc_qm="http://open-services.net/xmlns/qm/1.0/") in the root service document RDF/XML.
- GET with the following request headers: Accept = application/xml OSLC-Core-Version = 2.0
- Resolve the OSLC service provider document URL (rdf:about attribute) from the oslc:ServiceProvider element (dcterms:title = ) in the OSLC service provider catalog RDF/XML.
- GET with the following request headers: Accept = application/xml OSLC-Core-Version = 2.0
-
Download and verify the ETM Process Resources (TRS 2.0) feed:
- Open LQE.
- Navigate to Administration >> Query & report data >> Data Sources >> ETM Process Resources (TRS 2.0) >> Up-to-date.
- Click Download TRS Feed.
-
Run the following SPARQL queries in LQE:
- All the project areas in LQE, used by Report Builder to load the project areas for the user:
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX jazz_process: <http://jazz.net/xmlns/prod/jazz/process/1.0/>
PREFIX oslc: <http://open-services.net/ns/core#>
PREFIX oslc_config: <http://open-services.net/ns/config#>
PREFIX process: <http://jazz.net/ns/process#%3E
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX jrs: <http://jazz.net/ns/jrs#%3E
SELECT DISTINCT ?projectName
?projectUri
?projectType
?configSupport
WHERE
{
?projectUri rdf:type process:ProjectArea .
?projectUri dcterms:title ?projectName .
?projectUri oslc:archived false .
OPTIONAL {
?serviceProvider oslc:details ?projectUri .
?serviceProvider oslc:service ?service .
?service oslc:domain ?projectType .
}
# Look for the project's configuration support in various properties
OPTIONAL { ?projectUri jrs:projectConfigSupport ?projectConfigSupport . }
OPTIONAL {
?serviceProvider oslc:details ?projectUri .
?serviceProvider jrs:projectConfigSupport ?serviceProviderConfigSupport .
}
OPTIONAL {
?serviceProvider oslc:details ?projectUri .
?serviceProvider jazz_process:globalConfigurationAware ?globalConfigSupport .
}
BIND ( COALESCE(?projectConfigSupport, COALESCE(?serviceProviderConfigSupport, ?globalConfigSupport)) AS ?configSupport )
}
* All the OSLC service provider documents for the indexed 'QM Test Case' resource shapes (indicates all the projects with have been successfully indexed):
SELECT ?a ?d
WHERE
{
?a <http://purl.org/dc/terms/title> ?c
filter(str(?c) = 'QM Test Case'). ?a <http://open-services.net/ns/core#serviceProvider> ?d
}
* All the triples referenced by the project area resource (requires replacing <project area URL> with the project area URL):
SELECT ?p ?o
WHERE
{
<<project area URL>> ?p ?o.
}
* All the triples referenced by the OSLC service provider document resource (requires replacing < OSLC service provider document URL> with the OSLC service provider document URL):
SELECT ?p ?o
WHERE
{
<<OSLC service provider document URL>> ?p ?o.
}
* All the triples referenced by the merged shapes for the OSLC service provider document resource (requires replacing <OSLC service provider document URL> with the OSLC service provider document URL):
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX merge: <http://jazz.net/ns/lqe/merge/>
PREFIX oslc: <http://open-services.net/ns/core#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?s ?p ?o
WHERE
{
?s rdf:type merge:Shape; dcterms:title ?shapeMustHaveTitle.
FILTER( strStarts(str(?s), "http://jazz.net/ns/lqe/merge/gensym/qm/%22))
FILTER( strStarts(str(?o), "<OSLC service provider document URL>"))
VALUES ?p { dcterms:title dcterms:description merge:describes merge:shape merge:superShape merge:hidden merge:sameAs merge:orig merge:serviceProvider }
?s ?p ?o.
}
* All the triples referenced by the merged shapes for the OSLC test case resource shape (requires replacing <OSLC test case resource shape URL> with the OSLC test case resource shape URL):
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX merge: <http://jazz.net/ns/lqe/merge/>
PREFIX oslc: <http://open-services.net/ns/core#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?s ?p ?o
WHERE
{
?s rdf:type merge:Shape; dcterms:title ?shapeMustHaveTitle.
FILTER( strStarts(str(?s), "http://jazz.net/ns/lqe/merge/gensym/qm/%22))
FILTER( strStarts(str(?o), "<OSLC test case resource shape URL>"))
VALUES ?p { dcterms:title dcterms:description merge:describes merge:shape merge:superShape merge:hidden merge:sameAs merge:orig merge:serviceProvider }
?s ?p ?o.
}