It's all about the answers!

Ask a question

RTC Plugin Development on Ubuntu


Zoe Slattery (4011720) | asked Dec 13 '13, 12:02 p.m.
Hi

I need to develop some Java tools using the RTC Plan Java API. In order to get set up I started by following the instructions in Ralph Schoon's blog (http://rsjazz.wordpress.com/2013/02/28/setting-up-rational-team-concert-for-api-development/).

The blog suggests working through steps 1.1, 1.2 and 1.4 of the RTC Extensions workshop.
Step 1.1_3 (Install the Eclipse Client and a test server) fails at around step (f) because the web installer detects my unsupported Ubuntu 12.04 OS and declines to go any further.

I can see that I can develop using the Plain Java API without installing a test server - but the implication from the blog post is that it will be easier if I do, although at the moment I admit to not understanding the reasons for this.

So my questions are:

1) Will it actually run on Ubuntu? (I don't care about 'support' very much).
2) If so, does anyone one know the way to work around the Web Installer (I can see that there is a zip that looks as though it might include what I want).
3) If not, how much would I really gain from having a test server installed anyway? Enough for me to junk my Ubuntu install and try RedHat?

Thanks, Zoe



Comments
sam detweiler commented Dec 13 '13, 1:43 p.m.

you don't NEED to install ANOTHER server if you already have one. 

we generally suggest a separate instance so you can make mistakes and not screw up a production (or otherwise useful) server.  many things cannot be 'undone'. 

One answer



permanent link
sam detweiler (12.5k6195201) | answered Dec 13 '13, 1:57 p.m.
edited Dec 13 '13, 1:58 p.m.
 you don't NEED to install ANOTHER server if you already have one. 
we generally suggest a separate instance so you can make mistakes and not screw up a production (or otherwise useful) server.  many things cannot be 'undone'. 

and the Plan apis still are not documented in 4.0.5

here is a little bit of code I wrote to find and list all the plans

<code>
import com.ibm.team.apt.internal.client.IIterationPlanClient; 
import com.ibm.team.apt.internal.client.IterationPlanClient; 
          IIterationPlanClient planClient = (IIterationPlanClient) 
          teamRepository .getClientLibrary(IIterationPlanClient.class); 
          

        URI uri = URI.create(projectAreaName.replaceAll(" ", "%20")); 

        IProjectArea iprja = null; 

        iprja = (IProjectArea) processClient.findProcessArea(uri, 
                    null, null); 
IIterationHandle cih = dl.getCurrentIteration(); 
          
          List<IIterationPlanRecordHandle> phandles = ((IterationPlanClient) 
          planClient) .fetchAllIterationPlans(ItemProfile.ITERATION_DEFAULT, null); 
          
          List<IAuditable> itall = auditableClient.fetchCurrentAuditables( phandles, ItemProfile 
          .createFullProfile(IIterationPlanRecord.ITEM_TYPE), null); 
          System.out.println(" there are " + phandles.size() + 
          " plans available and " + itall.size() + " records"); 
          
          int i; 
          for (i = itall.size() - 1; i >= 0; i--) 
          { 
           
           IIterationPlanRecord ipr = (IIterationPlanRecord) itall.get(i); 
           
           IProcessArea ipa = (IProcessArea) auditableClient.resolveAuditable( ipr.getOwner(),          
              ItemProfile .createFullProfile(IProcessArea.ITEM_TYPE), null); 
           System.out.println("looping thru the plans , item="+i + " name="+ipa.getName() + "iteration="+ipr.getName());
           IIteration it = (IIteration) auditableClient.resolveAuditable( ipr.getIteration(),          
                      ItemProfile .createFullProfile(IIteration.ITEM_TYPE), null); 
           if(it!=null)        
           System.out.println("iteration start="+it.getStartDate() + " end ="+it.getEndDate());
           
          // if the plan iteration matches the project timeline current // iteration 
          if (ipr.getIteration().sameItemId(cih)) 
          { // assume the top level team area is the same as the project 
         // name // 
         //IProgressInformation iiii =  planClient.fetchPlanProgress(phandles.get(i), null); // 
            //ResolvedIterationPlan kkk =  planClient.fetchIterationPlan(phandles.get(i), mine); 
         
         if (ipa.getName().equalsIgnoreCase(iprja.getName())) 
         { // 
          //System.out.println("can save="+kkk.canSavePlan()); 
          System.out.println("process name = " + ipa.getName()); 
          System.out.println("plan name=" + ipr.getName()); 
          System.out.println("\tproject area = " + iprja.getName()); break; 
         } 
          }    
                 
          } 
</code>

Comments
Zoe Slattery commented Dec 18 '13, 8:42 a.m.

 That's great - thanks Sam - I an now completely set set up. We have a test server to experiment with anyway. Since you are obviously developing code for the Plain Java API (thanks also for the code sample!) , do you favour any particular unit test framework? 


sam detweiler commented Dec 18 '13, 8:49 a.m. | edited Dec 18 '13, 8:51 a.m.

no. I have not automated any of my unit test.  


in my code above, dl is the developmentline (timeline) retrieved from the project area

Your answer


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