It's all about the answers!

Ask a question

Serverside create link from a WorkItem to a Changeset


erling jorgensen (40911) | asked Jul 20 '12, 6:54 a.m.
 Hi

My task is to create a link between a Workitem and a changeset in a Participant on delivery. I have access to both the workitem and the changeset, and I am able of establishling a link, but the link is not registered as link to a Changeset.

My code looks like this:

IWorkItemServer workItemservice = this.getService(IWorkItemServer.class); 
IWorkItem workItemWC = (IWorkItem) workItem.getWorkingCopy();
IWorkItemReferences references = workItemservice.resolveWorkItemReferences(workItemWC, monitor);
IReference reference= IReferenceFactory.INSTANCE.createReferenceToItem(changeSet.getWorkingCopy().getItemHandle());

references. add(WorkItemEndPoints.RELATED_ARTIFACT, reference);
workItemservice.saveWorkItem2(workItemWC, references, null);

I do get a reference created, but as is actually says on the WorkItemEndPoints.RELATED_ARTIFACT, only as a related artifact. How do I make i proper reference to a Changeset?

Thx in advance

/Erling

Accepted answer


permanent link
erling jorgensen (40911) | answered Jul 24 '12, 7:47 a.m.
 HI

I think I've solved it myself. This code does the trick:

ILinkService linkService = getService(ILinkService.class);
ILinkServiceLibrary ls = (ILinkServiceLibrary) linkService.getServiceLibrary(ILinkServiceLibrary.class);
...
IReference changeReference= IReferenceFactory.INSTANCE.createReferenceToItem(changeSet.getItemHandle());
IReference workItemReference= IReferenceFactory.INSTANCE.createReferenceToItem(workItemWC.getItemHandle());
ILink il = ls.createLink(WorkItemLinkTypes.CHANGE_SET, changeReference, workItemReference);
ls.saveLink(il);

Maybe somebody else but me can use it.

/Erling
Ralph Schoon selected this answer as the correct answer

Comments
Ralph Schoon commented Jul 24 '12, 8:23 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

Thanks for sharing Erling.


Ralph Schoon commented Sep 20 '12, 11:48 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

Robert Carter commented Sep 24 '14, 10:02 a.m.

What did you include in your plug-in.xml file?  I keep getting this error when I try to run my participant.
CRJAZ1115I The "com.ibm.team.links.common.factory.IReferenceFactory" service was not registered.  I have the following pre-requisites:
<requiredService interface="com.ibm.team.links.common.service.ILinkService" />
                    <requiredService interface="com.ibm.team.links.service.ILinkServiceLibrary" />
                    <requiredService interface="com.ibm.team.links.common.factory.IReferenceFactory" />

Your answer


Register or to post your answer.