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

Identify a project area, which allows the sharing of its process

Hi everyone, we are moving forward with the workings of the Bees on RTC and we are at an excellent point, but I cannot understand one thing, how to recognize if a projecArea, allows the sharing of its process or not. This information is very useful for us and we would like to represent it, but I am faced with two obstacles:

1) Using this method given here, unfortunately I can't get a boolean as a result and therefore can't work with it
public static boolean isProcessProvider (IProjectArea projectArea) {
return ((ProjectAreaImpl) projectArea) .isProcessProvider ();
}

This method I got it from here:
Another method of the same class was very useful for "allowing" sharing, but with this I can't "find" it.

2) By printing the representation of a projectArea I get this string, but I'm not like "getting" to get the value of the "internalIsProcessProvider" attribute which is true if it allows sharing and false if it does not:
Proxy of com.ibm.team.process.internal.common.impl.ProjectAreaImpl@1b9d594a (stateId: [UUID _in0Y4g8qEeyCRKscF3z5hQ], itemId: [UUID _THXiUEUBEternaleu1e7ykQkentitory.Reamteamm: com. 43cbafa6, immutable: true) (contextId: [UUID _THXiUEUBEeu1e7ykQkgefA], modified: 2021-09-06 17: 53: 12.814, workingCopy: <unset>) (mergePredecessor: null, workingCopyPredecessor: <unset>, workingCopy: <MergePredecessor> predecessor: [UUID _gzX_wg8qEeyCRKscF3z5hQ]) (descSummary:, archived: false, name: Waterfall Principal, uniqueName: Waterfall Principal (JTS-Sentinel-Id)) (isInitialized: true, internalPublic: false, internalVisibleToMemberslication: true, internalVis : JTS-Sentinel-Id, internalIsProcessProvider: true, internalRemoteProcessProviderUrl:)
Do you have any idea about it? Thanks a lot to everyone in advance.

0 votes


Accepted answer

Permanent link

I have used a RTC 6.0.5 Eclipse Client Workspace configured for debugging the RTC SDK and Plain Java. 

The workspace has been set up by following the RTC Extensions Workshop Lab 1 - the whole lab including the new section in the latest version. In reality it is only necessary to configure the Plain Java Client Libraries as external library with the name PlainJavaApi.

I downloaded the code from https://rsjazz.wordpress.com/2014/11/28/the-process-sharing-api/ . I imported the zip file as existing project into the Eclipse workspace. No errors. Compiles like a charm.

I setup test project areas and ran the application 

com.ibm.team.js.process.client.ProcessSharingExample https://elm.example.com:9443/ccm myadmin myadmin ShareProcess InheritProcess

The application succeeds showing:


I am sure I can also debug it and the method returns a boolean.

The code you have up there is modified, casts to the wrong class and I have already mentioned that. Read my suggestion, or do the Extensions Workshop lab 1 and do what I did. 

I leave it to you to identify the differences between your code and the code that is downloadable from the blog post. From my perspective the code example works perfectly and does not need any modifications. This was with RTC 6.0.5 (against a 7.0.2 server) but I am pretty sure that it works with 7.0.x Plain Java as well. I am however not willing to spend the time.

Ralph Schoon selected this answer as the correct answer

1 vote

Comments

The code download link in the blog is https://www.dropbox.com/s/m5h2bleefveil2e/20141128_ProcessSharingAPI.zip in case you rushed over the blog and missed it. 

I apologize immensely :'(

I had not noticed this morning, when I took the source of the class I can swear to you, that there was a cast at ProjectAreaImpl, for that I did not return, this morning when I read your answer I did not notice the difference. Now that you pointed this out to me, I managed to get everything running perfectly and I got the result I wanted. Thanks a lot again for everything. However God forbid I asked you to debug, at most I'll take care of that :D

and as version we are using 6.0.5 . 

As a minimum, you could at least accept my answer. You didn't, but I can bring this to a conclusion myself. 


One other answer

Permanent link

 For all I can tell, the code can be downloaded a link is in the blog post. And the code in the ProcessProviderUtil looks like this:

    /*
     * Test if the projectArea Provides its process
     * 
     * @param projectArea
     * 
     *            Determines whether other project areas can get their process
     *            from this project area.
     * @return true if this project area allows other project areas
     *         to use its process, false if not.
     /
    public static boolean isProcessProvider(IProjectArea projectArea) {
        return ((ProjectArea) projectArea).isProcessProvider();
    }
The cast is to ProjectArea ( import com.ibm.team.process.internal.common.ProjectArea; ) which is an internal API. Apparently that is the class that has the required method. 



1 vote

Comments

I would suggest you follow the suggestion in the article and follow https://rsjazz.wordpress.com/2015/09/30/learning-to-fly-getting-started-with-the-rtc-java-apis/ Perform the RTC Extensions workshop at least Lab 1 to get a working environment that allows to see the SDK code for the PlainJava Client Libraries. 

PS: I do not know why you use the API for this. You can just look into the project area administration. What is the purpose of using the Java API. Some kind of automation? 

Hi Ralph, thanks for the quick reply. So yes, the class I use is that but the method doesn't return a boolean as declared, so are you telling me it returns a project area? So is the "declared" return of the method wrong? And then it returns null if ProjectArea does not share the process and returns the same ProjectArea if it does share it?
I also tried to "enter" the method and actually it seems that it should return a boolen, but if I run the method I get a CastException error, I also tried to modify it, but nothing because it wants a boolean, only that while executing that method, I don't understand what comes back, so it always goes into castException.
As for the use, we are automating the creation of projectArea and we have succeeded almost in everything, we just have to "take" the information I am looking for to get a complete picture of the ProjectArea. In the meantime, thank you very much. 

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,936
× 411
× 382

Question asked: Sep 22 '21, 11:38 a.m.

Question was seen: 1,835 times

Last updated: Sep 24 '21, 2:20 a.m.

Confirmation Cancel Confirm