RTC New LinkType help needed
Hello, I am working with RTC 3.0.1.1 and am trying to create some new custom link types for work items. I have followed Eduardo Bello's blog explaining how to create the extension point, site, feature. I have copied the site and create a provision profile in my test server conf directory. I have shutdown and restarted the server. After all of that, I was expecting to see the new link type in the Web UI when I went to the links tab on a work item. It wasn't showing up.
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.
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
| never mind
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.
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
I have played a lot with linktypes..
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
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
these two UI's are completely separated..
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
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
showing 5 of 8
show 3 more comments
Hi,
I followed every step to create my custom links, but i can't see them in the "Add" menu of "Links" tab. I tried both from the eclipse UI and from the web UI.
I created the plugin and its related Update site, copied it in the conf/ccm/sites folder, created the provision profile, then requested server reset and restart server, but nothing happens in the web UI. I also install the plugin in the Eclipse UI from "help -> Install new software" menu, but nothing happens in the Eclipse UI.
I red your comment, Jamie, "I had the constraint type wrong in my xml (constrained="true") and this was keeping me from seeing the new linktype", so i tried both values of that property but nothing seems to take effect...
I also create in the same plugin two link types, one with constrained="true" and the other with "false".
Here is my code, i can't see relevant differences from yours! :( Any help would be appreciated!
Thank you,
Alberto
------------
<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>