It's all about the answers!

Ask a question

Using Item Connector Framework


Ankur Sharma (151194) | asked Oct 21 '08, 8:59 a.m.
Hi

We are using Item connector framework for making connector for our defect tracking system. I have a few queries regarding Item connector framework.(https://jazz.net/wiki/bin/view/Main/ItemConnectorCreation) The following are the queires:

1. In Item connector client, there are two implementation choices : as a 'plain java application' or as an 'eclipse plug-in'. Which of these two implementations we should follow? Any idea how is it done in CQ connector ? Note that as per jazz tutorial it is recommended that we should go for 'java application' implementation.

2. While synchronizing from Jazz to External repository (NOT from External repository to jazz), the synchronization process can be started either explicitly or after a fixed interval of time. Is there any other other way to invoke synchronization process e.g. on the basis of event etc. (as this can done while synchronizing from external repository to Jazz).

3. We are not able to find javadoc/code for 'Jazz Plain Java Client libraries'. It would be helpful if we can have some link for it.

Regards
Ankur Sharma

47 answers



permanent link
megha mittal (15112615) | answered Apr 07 '09, 2:47 a.m.
This question was missed in some earlier replies "Also there may be some changes in Item connector framework release with RTC 2.0, we'll need to know about them as well. "
Also is there any list available, that tells about the APIs that are changed in RTC 2.0 .

Please reply .

Thanks
Megha

permanent link
Ankur Sharma (151194) | answered Mar 25 '09, 3:10 a.m.
Hi John

Here is the opened enhancement for documentation of item connector framework :
https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=75759

Here is the opened enhancement for support approval mapping in item connector framework:

https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=75761

- Regards
Ankur

permanent link
John Vasta (2.6k15) | answered Mar 09 '09, 8:55 a.m.
FORUM MODERATOR / JAZZ DEVELOPER
Hi Ankur,

I encourage you to submit a work item stating what you'd like to see in the documentation. Also, at this point there is no support for mapping 'approvals' to an external property, so please submit an enhancement request for that, if you'd like

John
Jazz ClearQuest Connector Team

Hi John

Is there any plan for updating the existing documentation of Item Connector Framework ? The current available documentation of item connector framework works fine for getting started, but at various points it is not sufficient for explaining the things. Is there any task already opened for this. If not then I request you to please consider for providing documentation for Item connector framework as early as possible. Also there may be some changes in Item connector framework release with RTC 2.0, we'll need to know about them as well.

Also I need to know one more thing about Item connector framework. Does it provide support for mapping of 'approvals' of workitem with corresponding approval records in external repository? If yes, then can you please let us know how to get started with it ?

- Ankur

permanent link
Ankur Sharma (151194) | answered Mar 09 '09, 5:52 a.m.
Hi John

Is there any plan for updating the existing documentation of Item Connector Framework ? The current available documentation of item connector framework works fine for getting started, but at various points it is not sufficient for explaining the things. Is there any task already opened for this. If not then I request you to please consider for providing documentation for Item connector framework as early as possible. Also there may be some changes in Item connector framework release with RTC 2.0, we'll need to know about them as well.

Also I need to know one more thing about Item connector framework. Does it provide support for mapping of 'approvals' of workitem with corresponding approval records in external repository? If yes, then can you please let us know how to get started with it ?

- Ankur

permanent link
John Vasta (2.6k15) | answered Jan 20 '09, 3:57 p.m.
FORUM MODERATOR / JAZZ DEVELOPER
What state is the work item in before the 'closed' state is sent in from your external system? The default value is only chosen if the destination does not already have a value that satisfies the possible mappings. In this case, you're saying that the external 'closed' value can map to 'Closed', 'Verified', or 'Resolved', so when the value 'closed' is sent in, if the work item is already in one of those states, no change will be made, since one of the allowed mappings already applies. It will only be changed if the work item state doesn't match any of the allowed mappings.

As you're developing your connector, you might find it useful to have debug logging for synchronization operations turned on in the the Jazz server. Assuming you're using the Tomcat deployment for the server, just add these two lines to the log4j.properties file that is in the 'server' directory where the Jazz server is installed:


log4j.logger.com.ibm.team.interop=DEBUG
log4j.logger.com.ibm.team.interop.service.outgoingSyncJob=OFF


Then restart the server. The log output will record whenever data is received from the external system, and how that gets transformed into work item updates.

John
Jazz ClearQuest Connector Team

Hi John

I have defined my state mapping as following:

    Item Value- External Value
    Closed - canceled
    Closed - closed
    Verified - closed
    Resolved - closed
    Resolved - returned


That means for incoming synchronization when 'closed' is the external state, 'Closed' should be default value in jazz. But when I am trying for incoming synchronization, and external value is 'closed' the state of corresponding jazz workitem doesn't change to Closed, while incoming synchronization shows status OK.
Also when I removed the 4th mapping from sync rule, it was able to map the external 'closed' to jazz 'Closed' state as expected.

Why is this happening? Am I missing something ?

permanent link
Ankur Sharma (151194) | answered Jan 20 '09, 3:35 p.m.
Hi John

I have defined my state mapping as following:

    Item Value- External Value
    Closed - canceled
    Closed - closed
    Verified - closed
    Resolved - closed
    Resolved - returned


That means for incoming synchronization when 'closed' is the external state, 'Closed' should be default value in jazz. But when I am trying for incoming synchronization, and external value is 'closed' the state of corresponding jazz workitem doesn't change to Closed, while incoming synchronization shows status OK.
Also when I removed the 4th mapping from sync rule, it was able to map the external 'closed' to jazz 'Closed' state as expected.

Why is this happening? Am I missing something ?

permanent link
John Vasta (2.6k15) | answered Jan 16 '09, 5:41 p.m.
FORUM MODERATOR / JAZZ DEVELOPER
The Interop REST client library is just lighter weight (smaller), since it doesn't include much of the RTC client infrastructure. And I don't think we are supporting access to Jazz REST services in general yet, since those protocols are likely to change signficantly. Someone from the Jazz Foundation team will need to comment on the general availability of REST protocol access. I suggest starting a new thread, since it's not really related to connectors.

John
Jazz ClearQuest Connector Team

Hi John

Jazz Plain JAVA Client libraries also provide libraries for Interop REST client. And this is what CQ connector team has used in Jazz Gateway for handling interop events.
I want to know why Interop REST client is being used over general Interop Client ? What are the factors which decided to go for Interop REST client ? Also can you give provide some links from where I can start learning about these REST services in jazz and how to use in connector context.

permanent link
Ankur Sharma (151194) | answered Jan 16 '09, 9:12 a.m.
Hi John

Jazz Plain JAVA Client libraries also provide libraries for Interop REST client. And this is what CQ connector team has used in Jazz Gateway for handling interop events.
I want to know why Interop REST client is being used over general Interop Client ? What are the factors which decided to go for Interop REST client ? Also can you give provide some links from where I can start learning about these REST services in jazz and how to use in connector context.

permanent link
John Vasta (2.6k15) | answered Jan 12 '09, 9:45 a.m.
FORUM MODERATOR / JAZZ DEVELOPER
It sounds like this is the same issue as described in

https://jazz.net/jazz/resource/itemName/com.ibm.team.workitem.WorkItem/33783

And you're right, we have no solution at this point. If you wrote your own value transformer, it would have to be able to determine the action that was used to cause the state transition.

John
Jazz ClearQuest Connector Team

Hi John

I have defined the value mapping for state property. There is extState of external defect 'Open' which is possible whenever a new defect is created or an already closed defect is reopened. But in jazz for a newly created defect the state is 'New' while for a reopened defect state is 'Reopened'. So depending upon which 'action' in ext repository is responsible for 'Open' state of defect, I want to choose either 'New' or 'reopened' state in jazz.

But I guess you have answered the question already that I have to write a value transformer. There is no other way to do this or is there any?

- Ankur

I'm not sure I understand your question. Let's say you have a mapping for the Priority property that maps a single external value (e.g. "Important") to three work item values (e.g. "Low", "Medium", "High"), and you marked one of those values as the default (say "High"). That means that when a work item Priority value of Low, Medium, or High is synchronized out to the external system, the external value will be set to Important, and when the external value of Important is received for a work item, if not already set to one of the mapped values (Low, Medium, or High), High will be chosen.

So are you saying that sometimes, for incoming synchronization, if a mapping defines multiple possible values, you want different values to be chosen at different times? If so, based on what criteria? There is no built-in way to do that, but you can always create your own value transformer that can do anything it wants (as far as transforming property values).

John
Jazz ClearQuest Connector Team

permanent link
Ankur Sharma (151194) | answered Jan 12 '09, 2:07 a.m.
Hi John

I have defined the value mapping for state property. There is extState of external defect 'Open' which is possible whenever a new defect is created or an already closed defect is reopened. But in jazz for a newly created defect the state is 'New' while for a reopened defect state is 'Reopened'. So depending upon which 'action' in ext repository is responsible for 'Open' state of defect, I want to choose either 'New' or 'reopened' state in jazz.

But I guess you have answered the question already that I have to write a value transformer. There is no other way to do this or is there any?

- Ankur

I'm not sure I understand your question. Let's say you have a mapping for the Priority property that maps a single external value (e.g. "Important") to three work item values (e.g. "Low", "Medium", "High"), and you marked one of those values as the default (say "High"). That means that when a work item Priority value of Low, Medium, or High is synchronized out to the external system, the external value will be set to Important, and when the external value of Important is received for a work item, if not already set to one of the mapped values (Low, Medium, or High), High will be chosen.

So are you saying that sometimes, for incoming synchronization, if a mapping defines multiple possible values, you want different values to be chosen at different times? If so, based on what criteria? There is no built-in way to do that, but you can always create your own value transformer that can do anything it wants (as far as transforming property values).

John
Jazz ClearQuest Connector Team

Your answer


Register or to post your answer.