It's all about the answers!

Ask a question

Integration of configruation aware RM service provider with jazz


0
1
Saqib Niaz (71723) | asked Jan 20 '16, 9:41 a.m.
I have Jazz team server 6.0.1 RC running on a linux machine.
I have implemented my own RM service provider and it is integrated and working fine with jazz quality management module.
Now, I am trying to make my RM service provider "Configuration Aware" on the guidelines given in OSLC Configuration Management 1.0 https://tools.oasis-open.org/version-control/browse/wsvn/oslc-ccm/trunk/specs/config-mgt/oslc-config-mgt.html.

I have associated my jazz qm project with a Global Configuration Context. And now when I try to access my service provider (qm project -> planning (selected a testPlan) -> Requirement Collection Links -> +), jazz gives an error saying that "AQXCM5046E The selected project, "MyProjectName", does not support configuration management capabilities."

Question: What should I do in my rootServices rdf and serviceProvider rdf so that jazz can know that my service provider is Configuration Aware?

Accepted answer


permanent link
Kathryn Fryer (503147) | answered Jan 20 '16, 11:41 a.m.
Check out this page on the deployment wiki:
https://jazz.net/wiki/bin/view/Deployment/IntegratingWithConfigurationManagementEnabledCLMApplications

There are some service provider parameters that the CLM applications check, especially the configurationAware property.  Those are detailed in this section of that wiki page.  You may find some other pertinent information there also.

If you have any insights to share based on your experience, we'd like to hear them.
Saqib Niaz selected this answer as the correct answer

Comments
Saqib Niaz commented Jan 21 '16, 4:12 a.m.

Thanks Kathryn for a quick answer.

I have gone through the page that you have recommended.

I have read the specification from these three links:
https://tools.oasis-open.org/version-control/browse/wsvn/oslc-ccm/trunk/specs/config-mgt/oslc-config-mgt.html
https://tools.oasis-open.org/version-control/browse/wsvn/oslc-ccm/trunk/specs/config-mgt/versioned-resources.html
https://tools.oasis-open.org/version-control/browse/wsvn/oslc-ccm/trunk/specs/config-mgt/config-resources.html

These namespaces are mentioned on these pages
http://open-services.net/ns/config#
http://open-services.net/ns/config#globalConfigurationService

While the namespace mentioned on your link is:
http://jazz.net/xmlns/prod/jazz/process/1.0/

Can you please explain a bit why there are differences?
Or is it some interim implementation which will be replaced with an updated version later?

Thanks and Regards


Saqib Niaz commented Jan 27 '16, 8:03 a.m.

Hi Kathryn,
i am following the guidelines given on the link you mentioned. I have put globalConfigurationAware and other two tags in my serviceprovider document
I am able to add resources from my project to Requirement Collection Links in a Configuration aware qm project.
Now, i am trying to add configuration baseline/stream from my project to the Global Configuration i.e. "Scenario 3: Enable users to define configurations in your own application". from your document.
When I press "Add Configuration" in Global Configuration, a dialog opens and says that "x friend servers are not available" on pressing show details it shows my project name there.
When this dialog opens it accesses rootservices and oslc_config rdf from my server and after that it doesn't try to get anything from my server?
my oslc_config is similar to the one that is returned by

https://jazz.local:9443/rm/oslc_config (our local jazz installation). Can you guide me further a bit, how to make it work?

2 other answers



permanent link
David Honey (1.8k17) | answered Jan 27 '16, 11:38 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Hi Saqib,

I'm not sure I understand your question. But the following might help. In order for the GCM application to be able to select configurations from a CM provider, GCM discovers which CM providers support selection dialogs as follows:
  1. It determines the friends known to the JTS. For example, this might include "/qm", "/rm" and so on.
  2. For each friend from #1, it gets its root services document. It looks for an oslc_config:cmServiceProvider statement. The object of that statement should be the URI of an OSLC service provider catalog.
  3. It reads the service provider catalog, and looks at each service provider. Those that declare a selection dialog are noted as available CM providers.
For example, DNG's root services will contain something like:
    <oslc_config:cmServiceProviders    rdf:resource="https://localhost:9443/rm/oslc_config"/>

This indicates that the OSLC Service Provider Catalog for CM discovery is at https://localhost:9443/rm/oslc_config
A GET on that should return something like:
<rdf:RDF    
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:vvc="http://jazz.net/ns/vvc#"
xmlns:dcterms="http://purl.org/dc/terms/">
  <oslc:ServiceProviderCatalog>
    <oslc:serviceProvider>
<oslc:ServiceProvider rdf:about="https://localhost:9443/rm/oslc_config/components">
       <oslc:details rdf:resource="https://localhost:9443/rm/oslc_config/components"/>
<dcterms:title>Requirements Management</dcterms:title>
</oslc:ServiceProvider>
</oslc:serviceProvider>
    <oslc:domain rdf:resource="http://open-services.net/ns/config#"/>
    <dcterms:description>Configuration Services Provided by the RM application.</dcterms:description>
<dcterms:title>RM Configuration Management Services Catalog</dcterms:title>
</oslc:ServiceProviderCatalog>
</rdf:RDF>
	
The example RDF shows a service provider at https://localhost:9443/rm/oslc_config/components
A GET on that service provider gives:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:vvc="http://jazz.net/ns/vvc#"
xmlns:dcterms="http://purl.org/dc/terms/">
<oslc:ServiceProvider>
<oslc:service>
<oslc:Service>
<oslc:selectionDialog>
<oslc:Dialog>
<dcterms:title>RM Component Configuration Picker</dcterms:title>
<oslc:label>RM Component Configuration Picker</oslc:label>
<oslc:dialog rdf:resource="https://localhost:9443/rm/_ajax-modules/com.ibm.rdm.web.OslcConfigurationPickerPane"/>
<oslc:hintWidth>600px</oslc:hintWidth>
<oslc:hintHeight>500px</oslc:hintHeight>
<oslc:resourceType rdf:resource="http://jazz.net/ns/vvc#Configuration"/>
<oslc:usage rdf:resource="http://jazz.net/ns/vvc#Configuration"/>
</oslc:Dialog>
</oslc:selectionDialog>
</oslc:Service>
</oslc:service>
</oslc:ServiceProvider>
</rdf:RDF>

Hope that helps,
Best regards,
David


Comments
Saqib Niaz commented Jan 28 '16, 8:41 a.m. | edited Jan 28 '16, 8:45 a.m.

Hi David,
Thanks for a detailed answer.
I am exactly doing the same steps that you have mentioned in your answer. Basically, I have copied the responses from jazz:9443/rm/rootservices, oslc_config and the components. Mine is an exact replica just the links are changed and are pointing to our services.
But the problem is when I try to "Add Configuration" in a Global Configuration Stream, a dialog shows up and when i press refresh button on that dialog, it accesses the rootservices and oslc_config from my server, after that no request comes in from jazz to my server. And the Add configuration dialog shows a message "One friend server is not available" and the list contains the name of our server.
My oslc_config has a link to our components service (same as jazz rm oslc_config) but jazz never tries to access that.
Can you please guide me further a bit, what is happening? How can jazz decide based on the oslc_config response that this friend server is offline?
If you say i can send the responses for the services for rootservices, oslc_config and components from my server.
The version of our jazz server is 6.0.1.
Regards


1
David Honey commented Jan 28 '16, 9:19 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

You might get more diagnostics by enabling DEBUG level for the LcProviderHelper class:

  1. Stop the GC server.
  2. cd <installdir>/server/conf/gc
  3. Edit the log4j.properties file, add the following line:
    log4j.logger.com.ibm.team.gc.web.frontservice.discovery.LcProviderHelper=DEBUG
  4. Restart the GC server.
Then try your test. There should be additional DEBUG entries in the <installdir>/server/logs/gc.log file. These might provide clues as to what's happening. The log might also contain other information of diagnostic value - for example, if a GET fails, it might get logged with some details of why it failed.


Saqib Niaz commented Jan 28 '16, 10:33 a.m.

Hi David,
I have done all the steps that you mentioned and it seems like some NullPointerException is being thrown while accessing my service. Following is the relevant part of the log
2016-01-28 16:17:12,013 [Default Executor-thread-249 @@ 16:17 jazz <gc.viewConfiguration/Search for a configuration to add to the selected stream@700933f5-7174-431b-8312-0a5f3653f58d> /gc/gc.webui.discoverLcProviders] DEBUG eam.gc.web.frontservice.discovery.LcProviderHelper  - Skipping local-configuration provider 'https://bonnie.local:8443/com.consul.oslc.serviceprovider/rootservices' due to an error
java.util.concurrent.ExecutionException: java.lang.NullPointerException
    at java.util.concurrent.FutureTask.report(FutureTask.java:134)
    at java.util.concurrent.FutureTask.get(FutureTask.java:214)
    at com.ibm.team.gc.web.frontservice.discovery.LcProviderHelper.getAllFriendLcApplications(LcProviderHelper.java:160)
    at com.ibm.team.gc.web.frontservice.discovery.LcProviderWhitelist.getServiceProvidersAndAddToWhitelist(LcProviderWhitelist.java:63)
...
Would you like full log?


David Honey commented Jan 29 '16, 8:12 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

Please submit a defect work item on jazz.net (https://jazz.net/jazz/web/projects/Jazz%20Foundation#action=com.ibm.team.workitem.viewWelcome) and include as much detail as possible, including the gc.log file. Thanks.


permanent link
Kathryn Fryer (503147) | answered Jan 21 '16, 8:22 a.m.
Hi Saqib,
The open-services.net namespaces are defined based on the OSLC specifications. You need those as part of implementing the specs.

CLM has implemented some extensions beyond the specifications, like the service provider properties.  Those are defined in the jazz.net namespace mentioned.

Does that help?

Comments
Saqib Niaz commented Jan 27 '16, 3:37 a.m.

Hi Kathryn,
The link that you sent in first answer is really helpful.
I was just confused why the material on that page is different from the OSLC configuration management specification.
I have started my implementation keeping in view the guidelines given on your link.
Thanks

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.