RTC New LinkType help needed
I did some more digging on the forums and found information on how to add the link types to the quick information presentation area, so I installed the update site on my eclipse client and went to the Quick Information Presentation section of the process configuration to try and add the new link types. I was able to perform those steps and the list of Quick Information on this config page shows my new link type with its 2 endpoints.
After all of this, the new link type is still not offered as a link type when manipulating links on a work item (existing or new, web or eclipse).
What am I missing?
Thanks for any help you can provide. I need to have this capability working soon.
Jamie.
Accepted answer
the <itemreferencetype
MUST BE mixed case
itemReferenceType
(watch out, the forum mucks with the text if there are <)
your link types are working on my system now with that change. I compared line for line with mine till I found it.
you must install this in every eclipse client AND on the server.
5 other answers
here is one of mine, mapping 'fixed in/resolving defects and 'found in/discovered defects' for defects.
(watch out for the <BR> tags in the xml, added by the forum tool, not me)
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="com.ibm.team.repository.common.linkTypes">
<linkType
constrained="false"
id="com.xxx.workitem.linktype.foundin"
internal="false">
<target>
<endpoint
displayName="Found In"
id="foundin.delivery"
multiplicity="0..n">
<itemReferenceType
itemTypeName="WorkItem"
packageURI="com.ibm.team.workitem"/>
</endpoint>
</target>
<source>
<endpoint
displayName="Occurring Defect(s)"
id="workitem.defect"
multiplicity="0..n">
<itemReferenceType
itemTypeName="WorkItem"
packageURI="com.ibm.team.workitem">
</itemReferenceType>
</endpoint>
</source>
</linkType>
</extension>
<extension
point="com.ibm.team.repository.common.linkTypes">
<linkType
constrained="false"
id="com.xxx.workitem.linktype.fixedin"
internal="false">
<target>
<endpoint
displayName="Fixed In"
id="fixedin.delivery"
multiplicity="0..n">
<itemReferenceType
itemTypeName="WorkItem"
packageURI="com.ibm.team.workitem"/>
</endpoint>
</target>
<source>
<endpoint
displayName="Resolved Defect(s)"
id="workitem.defect"
multiplicity="0..n">
<itemReferenceType
itemTypeName="WorkItem"
packageURI="com.ibm.team.workitem">
</itemReferenceType>
</endpoint>
</source>
</linkType>
</extension>
</plugin>
create a plugin project, set the build path to require com.ibm.team.repository.common.
then add an extension of 'com.ibm.team.repository.common.linkTypes'
then cut/paste the above xml into the plugin.xml.
then save
create a plugin feature project pointing to this project
then create an update site project pointing to the feature.
edit the site.xml, synchronize plugins, and then build.
find the site directory in the eclipse project workspace, and copy it out to your server in some update site under server/conf/sites
the directory ABOVE features/plugins is what u want.
then the u have to add the provisioning profile to the server/conf/ccm/provisioning_profiles folder
like this one
for the stock update site.
url=file:ccm/sites/rtc-commons-update-site
featureid=com.ibm.team.rtc.update.site.content.rtc.feature
you need to reset the server and restart it. if you do NOT reset, the plugin
will NOT be loaded. (same to unload it)..
the server plugin only affects the web UI.
this same directory tree is the update site for eclipse.
the plugin MUST be installed for all clients that intend to see the data.
(otherwise the links look like 'related')
this plugin install affects the Add button for workitems.
as u already mentioned, the quick links can be used to show the correct text
in the workitem overview page.
note that these linktypes are SERVER wide, and affect ALL workitems equally.
(so, altho mine specifically are linked semantically to defects and releases,
they show up for tasks, and storys, and epics) that is because they are targeted at
com.ibm.team.workitem. (because all workitems are com.ibm.team.workitem,
and there is no discrete class for specific workitemTypes, you can't target lower).
let me know if I can help more..
Sam
Comments
Thank you for your response. I was very close with my work. I had the constraint type wrong in my xml (constrained="true") and this was keeping me from seeing the new linktype. I am much closer to my end goal now. All I have left is to lookup how to configure queries to see the new linktypes and to test deploying on a WAS based server instead of tomcat. Do you know if the deployment is the same?
Found the links in the query... Forgot to check the 'show links' option. All I have left now is to try deploying to a WAS based server. Thanks again for the help.
New problem just came up. When I was testing this last week, I saw the link types on both the eclipse client and the Web UI. Today we deployed the extension to our WAS server and I can use the linktypes from Eclipse but they aren't showing up in the WebUI. I checked my development server I used last week (nothing has changed) and the WebUI doesn't show the linktypes either. Either I didn't see it on the web last week or something has gone wrong.
Does anyone have any idea why the link types would show for Eclipse and not the WebUI? I am accessing the same Project Area and same work items.
Thanks in advance for any help.
Jamie.
the Eclipse UI is controlled by the plugin there, (on the web these will look like 'related' workitems.
the Web UI is controlled by the plugin installed on the server. gotta make sure to do a cold start of the server to load the plugin.. note that a plugin built with the wrong classes WILL load on the client, but till NOT load on the server.
the app server logs will tell you if there is a class file loading problem. and the plugins have to be installed in the CCM app instance..
cold start is https://serveraddress/ccm/admin/cmd/requestReset
then shutdown and restart the server
Sam
Comments
Sam,
Thank you for your answer. I did a reset on my local server and the linkypes are showing up. For my WAS based server, my admin said he did the reset request before he restarted it. I will try to get a look at the logs to see what is going on.
Is there a way to extend the Visual Studio client? I would like these linktypes to be visible there as well.
Lastly, when I bring up the web UI on one of the work items that have a new link type attached, the linked work item doesn't show up at all (not even as related). Do you know if this is a bug or if I have something else configured wrong? (I am using RTC 3.0.1.1).
Thank you again for all of your assistance.
Jamie.
how do you know the workitem has the link? Eclipse? they store this in the same place, so it should show on the server as related no matter what. I have not seen this on my local setup.
sorry, I know nothing about the VS client.
Yes, in Eclipse the link shows up, but on the WebUI it doesn't. Also, I have another Eclipse client that does not have the extension installed and it does not show there either.
Thanks again for your help.
Sam,
Did you provide an icon for your link types? I added the icons and rebuilt the site and installed it on an Eclipse client. The link types are showing up, but not their icon. I finally have my server working as well a the client but for clients that do not have the extension, all links of the new type do not show up...
Thanks,
Jamie.
Okay, I figured out what I needed to do to have the icons show up. I needed to add the directory with the graphics to the Build Properties and they are added in the correct location in the jar file.
yes, you have to deliver the icon in the plugin if not already installed. I have both types of links. really hate that they are system wide, not project specific.
Sam,
I really appreciate all of your help on getting the custom linktypes working. I am now trying to access the new linktypes via the Java API for use in both Delivery Operation Advisors and plain Java API clients. I have found references to code that can be used to lookup the IEndPointDescriptor for a linktype, but when I try it I can't find anything for my linktypes. The assumption is that somehow the extension has to be made known to the Java API. Do you know how to accomplish this by any chance?
Thanks,
Jamie.
I have not done this myself.. but I think you have to add the new linktype plugin jar file to the plain java app classpath..
I will try this, hopefully over the weekend
Sam
<plugin>
<extension
point="com.ibm.team.repository.common.linkTypes">
<linkType
constrained="false"
id="it.nexen.custom.links.documentazione"
internal="false">
<source>
<endpoint
displayName="Application"
id="application"
multiplicity="0..1">
<itemReferenceType
itemTypeName="WorkItem"
packageURI="com.ibm.team.workitem"/>
</endpoint>
</source>
<target>
<endpoint
displayName="Documentation"
id="documentation"
multiplicity="0..1">
<itemReferenceType
itemTypeName="WorkItem"
packageURI="com.ibm.team.workitem"/>
</endpoint>
</target>
</linkType>
</extension>
<extension
point="com.ibm.team.repository.common.linkTypes">
<linkType
constrained="true"
id="it.nexen.custom.links.collegamento"
internal="false">
<source>
<endpoint
displayName="WorkitemSource"
id="wisource"
multiplicity="0..1">
<itemReferenceType
itemTypeName="WorkItem"
packageURI="com.ibm.team.workitem"/>
</endpoint>
</source>
<target>
<endpoint
displayName="WorkitemTarget"
id="witarget"
multiplicity="0..1">
<itemReferenceType
itemTypeName="WorkItem"
packageURI="com.ibm.team.workitem"/>
</endpoint>
</target>
</linkType>
</extension>
</plugin>