Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

Obtain with java api the current repository (iTeamRepository) and the current user (iContributor)

Hello,
I use RTC 4.0.3 and I try to create a java plugin on the server side.
On this program, I try to obtain the current user.

I think that this 2 codes should be correct but I don't know how obtain iTeamRepository.
IContributor iContributor = iTeamRepository.loggedInContributor() ;	
or
IContributorHandle iContributorHandle = auditableCommon.getUser();	
IContributor iContributor = (IContributor) iTeamRepository.itemManager().fetchCompleteItem(iContributorHandle, IItemManager.DEFAULT, monitor) ;
In this 2 examples, the problem is that iTeamRepository is null ...
I have found code this code but it doesn't work on server-side, only on client-side when you create manually a new session.
ITeamRepository iTeamRepository = TeamPlatform.getTeamRepositoryService().getTeamRepository(auditableCommon.getRepositoryURI()) ;	
Can you help me ?
Thanks a lot.

Regards
Mathieu

0 votes



2 answers

Permanent link
There are several examples on http://rsjazz.wordpress.com/

Start here: http://rsjazz.wordpress.com/2013/02/28/setting-up-rational-team-concert-for-api-development/
continue with http://rsjazz.wordpress.com/2013/03/20/understanding-and-using-the-rtc-java-client-api/

and search the blog.
http://rsjazz.wordpress.com/2012/12/09/analyzing-a-aroject-areas-members-and-roles-using-the-plain-java-client-libraries/ shows details. There is more in the blog.

2 votes

Comments

 http://rsjazz.wordpress.com/2012/11/30/a-create-approval-work-item-save-participant/ shows how a server extension works. Please be aware, that the server API works different than the client API. You get the service from AbstractService and don't use getClientlibraries(). I am not sure if you need ITeamRepository in the server API.


Permanent link
Hello Ralph,
Thanks for all this information mainly the last comment.
In fact, examining your code example, I have found how obtain the current user with this code :
IContributorHandle iContributorHandle = auditableCommon.getUser();
IContributor iContributor = (IContributor) auditableCommon.resolveAuditable(iContributorHandle,ItemProfile.createFullProfile(IContributor.ITEM_TYPE), monitor);
My problem was that I didn't know the method ItemProfile.createFullProfile.

Otherwise, you are right when you said that ITeamRepository is not necessary because this object is a client-side object and not a server-side.

Finally, with your example, I have discovered that your main class extends "AbstractService". Is it important ? In fact, in my code, I don't use this extended class and I have no problem ... Why ??? I don't know.
Thanks for your help Ralph !

0 votes

Comments

You want to extend abstract service, especially since it provides you with getService() to get other service classes (analogue to the getClientLibrary() in the client API). It also provides you with access to the user context you are running in (getAuthenticatedContributor()) and other context information. Without it you have no way to access data outside of the domain of your extension, because you can't get at the services needed to retrieve the data.

1 vote

Thanks Ralph.
Have a nice day !

Your answer

Register or log in 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.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 10,937
× 411

Question asked: Oct 11 '13, 3:45 p.m.

Question was seen: 8,145 times

Last updated: Oct 14 '13, 2:48 a.m.

Confirmation Cancel Confirm