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

Is there a method summary (and explanation) for IBM Plugins?

 Hy there Felllas,

I'm searching hard some for some informations about IBM Plugins.
I've found the (Java Plain) API, but this wasn't what I searched for.
Let me explain this:
If I search in the API about "ProcessClient", there's only one method shown. "getOperationAdviceManager()"
But if I console.log the "ProcessClient", there are a lot more methods.
The other problem there is: how could I ever assume what "args" for a parameter should be?

Is there a way to get more specific informations about the whole thing?
(Dojo made it very good! I need something like that: http://dojotoolkit.org/api/)

Greetings and thanks in advance

Studer Jonas

1 vote

Comments

the server side api is not yet documented, except for the general advisor/plugin that are documented in the developer workshops.


Accepted answer

Permanent link
Hy there fellas,

I found out, how I have to use it.
If someone need an explanation HOW I found out, how I have to do it, please feel free to ask.
But it's a bit a lumberjack technique... ;)

Greetings
Ralph Schoon selected this answer as the correct answer

0 votes

Comments

Would be nice if you could share if you have time (If you did not already). Finding around in the APIs is very tough for everyone. So that sounds familiar 8D

Ok, I try to explain that (English isn't my native language so don't judge my use of english :P )

1: I've installed a local RTC Server and an Eclipse with RTC

2: Now it's all about backtracking and reverse-engineering.
The best way to find what you've searching for is watching the main system.
Let me explain that:
If I wanna get some Iterations for my Widget, I best search in "Manage this ProjectArea --> Timelines" because there the server triggers his commands (Now you have to catch them.)

3: I've installed FireBug on my Mozilla (Chrome has something similar) to have a better view of the console etc.

4: Now I have to go to the "NET"-Register in Firebug to watch, whats comming in, and whats going out.
E.g. "GET projectAreaByUUIDWithLimitedMembers"
If I watch the full Link, I see its a child of process (com.ibm.team.process) so I might try the "ProcessClient" class.

5: How to proof I need the "ProcessClient" class.
Console.log it to see ALL of it's methods. But Parameters only called args.
(That's the next problem)
Go Back to the NET-Tab an watch there:Params

maxMembers 20
processAreaItemId _To2SsOv2EeO4_Z0j7f0p2A


Tadaaaa, now i can build my request.
args = {
  maxMembers: number
  processAreaItemId: UUID of PA
}
ProcessClient.projectAreaByUUIDWithLimitedMembers(args, ServiceResponseHandler)

Antoher good trick is the "Debug=true" function.
This allows you to see ALL the loaded scripts in clear-text!
And you also can set BreakPoints and step throught server-intern methods.

Thanks for the explanation.

In https://rsjazz.wordpress.com/2013/03/20/understanding-and-using-the-rtc-java-client-api/ and other blog posts, I explain how to find the API with Java and the SDK installed. This allows finding the Java code and the interfaces the service/client library classes provide. The benefit is, that you can find the client libraries for example, because they are all retrieved using the

getClientLibrary()
call, which you can easily search for.

With respect to Firefox/Chrome, I have been told, Chrome works better for developing.

P.S.
https://localhost:7443/jazz/admin?debug=true#action=com.ibm
There you have to add the "Debug=true" that it works. (You HAVE to add the ? in front)

Hopefully I helped a bit. Feel free to ask questions

@Raplh,
Don't forget I use JAVASCRIPT and DOJO.
So the JAVA API is useless for me.

But there should be a full JavaDoc API on the net.
https://jazz.net/downloads/rational-team-concert/releases/4.0.5?p=allDownloads
Here search for: "Plain Java Client Libraries API documentation" or
"Plain Java Client Libraries"

Yes, however there is a ProcessClient client library with, I expect, similar API. I would expect the service names to be the same or very similar in most of the cases. The JavaScrit API is probably a facade.

So if you look at the JavaAPI you can probably find the JavaScript API as well. This would allow you to focus searching a bit.

 uuff, I've made the same mistake and thought it would be mostly the same...
Nope its not!

If I gonna watch the ProcessClient Class there's just one Method:

getOperationAdviceManager

But if I console.log(com.ibm.team.process.web.client.internal.ProcessClient)
There are about 40-50 Methods!

showing 5 of 9 show 4 more comments

2 other answers

Permanent link
Jonas,

as Sam points out there is no documentation, unfortunately. If you start here: https://rsjazz.wordpress.com/2013/02/28/setting-up-rational-team-concert-for-api-development/ you can setup the SDK as well as the plain Java Client Libraries in a way that allows you to search the full source code. You can search for references in Eclipse too and that usually allows you to answer questions like what to pass as arguments well. You will find that especially in tests that are shipped with the SDK.

2 votes

Comments

this approach works, but it takes a LOT of energy and skill to navigate the large amount of code and missing design information to find something that helps you.

1 vote

I totally agree with Sam. The most challenging about this approach is that the source code documentation within the SDK is very poor. I personally have learned the most from looking at the unit/integration tests included and from Ralph's blog.

If IBM wants to push their platform, they have to put a lot of work in documentation improvements.

There is a lot of pressure on new features. We are looking into public API's that should be available (also new API) and officially supported, but it takes time.

The only officially supported API right now is where we have JavaDoc for in the Plain Java Client Libraries.

With respect to the SDK, I am torn. On the one hand operational behavior is sometimes the only viable solution. On the other hand we have seen in the past users customizing our tools to an extend where they rendered useless. So, the SDK API so far is considered 'use at own risk'.

However, we are aware that it is sometimes essential. That is why some of us blog about the API to compensate for the lack of documentation.

1 vote


Permanent link
 @Sam Detweiler,
Thanks for the information.
But in this case I'm getting in trouble. Let me explain this...
If I compare this two methods:
-ProcessClient.getProjectAreaByUUID(args, responseHandler)
-ProcessClient.getProjectAreaByUUIDWithLimitedMembers(args, responseHandler)

I do know "getProjectAreaByUUIDWithLimitedMembers" work with this args:
var args = {
processAreaItemId: this.getScopeItem().itemId,
maxMembers: 100,
};

But this (getProjectAreaByUUID) won't work (400 Bad Request):
var args = {
processAreaItemId: this.getScopeItem().itemId,
};

This makes no sense in my opinion...

0 votes

Comments

What do you want to achieve?

 Relatively simple...
I have to gather all "Timelines" (Especially the Main Development) from a specific Project Area.


This should be:

        IDevelopmentLineHandle[] developmentLineHandles = projectArea
                .getDevelopmentLines();

It should be on my blog in the DevelopmentLineHelper, I think.

This can't be what you are looking for. I think you look for the project Area. You could iterate all project areas to find the one you need. E.g. like in http://rsjazz.wordpress.com/2012/12/09/analyzing-a-aroject-areas-members-and-roles-using-the-plain-java-client-libraries/

notice he is using JavaScript.

Thanks Sam, I was wondering. My answers are for the Java API in the server. I can't help with JavaScript.

@Raplh,
No Problem, but thank you for trying to help me!
@Sam
Tank you too.

showing 5 of 7 show 2 more comments

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,941

Question asked: Jun 16 '14, 9:22 a.m.

Question was seen: 4,486 times

Last updated: Jul 01 '14, 5:30 a.m.

Confirmation Cancel Confirm