Is there a method summary (and explanation) for IBM Plugins?
Accepted answer
If someone need an explanation HOW I found out, how I have to do it, please feel free to ask.
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:
getOperationAdviceManagerBut if I console.log(com.ibm.team.process.web.client.internal.ProcessClient)
There are about 40-50 Methods!
2 other answers
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.
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
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:
But this (getProjectAreaByUUID) won't work (400 Bad Request):
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.
Comments
sam detweiler
Jun 16 '14, 9:25 a.m.the server side api is not yet documented, except for the general advisor/plugin that are documented in the developer workshops.