Preparing the Environment for Extending RTC (3/3) - Configuring SDK and Debug.
Important: This tutorial was produced using the windows version of the RTC, some screenshots may not match for other operating systems. A few aspects will be different, for example, the extension of some files "*. bat", "*. sh", "*. exe".
To follow this tutorial you must have a local server configured and running normally. If you haven't already, please go to the first two parts of the tutorial using the links in the first paragraph. Some files we will need only exist if the server runs at least once (deploy war files). I will refer to the directory where you installed the applications as jazz {jazzdir}, so replace that expression with the directory where you installed the platform jazz on your machine and not its literal value.
Let's get started! Our first step will be to configure three files. The first will enable debugging on the server side, the other two, nearly identical, will enable the use of the server console to obtain some information during the development process.
Open the file {jazzdir}\IBM\JazzTeamServer\server\server.startup.bat
Find the lines with JAVA_OPTS option, and add the following line: set JAVA_OPTS=%JAVA_OPTS% -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=2244. Important: The port can be any one that are not in use, in our case I chose port 2244. What is required is that the port configured in this file is used to configure client debug as we shall see. There is also an optional step, configure this launcher to automatically delete the work directory of ccm (or jazz). Whenever you update a customization (plugin), to make sure that the server will read the newest version is useful to delete the work directory of tomcat. But you don't have to do it in this file, so it is more like a personal choice. At the end, your file will look like this:

Now let's make a change in two similar files. Open the files: {jazzdir}\IBM\JazzTeamServer\server\tomcat\webapps\ccm\WEB-INF\web.xml and {jazzdir}\IBM\JazzTeamServer\server\tomcat\webapps\jts\WEB-INF\web.xml. Then uncomment the block that deals with the commandline -console argument

Now you need to download the SDK 3.0 (you must be logged in jazz.net) and then unpack it. In our case we chose the directory {jazzdir}\IBM\TeamConcert\sdk. As the structure of folders and directories is very long, some unzip tools are unable to extract the files correctly, so JazzTeam recommends using 7-zip (free).
The setup outside the client eclipse is over, now let's configure the client. Start the server to make sure it's running smoothly.

Open the Jazz Client (or eclipse with jazz plugin installed) and go to menu Window -> Preferences and select Plug-in Development -> Target Platform. Select Running Platform and click the "Edit"

Let's add a new location for this platform:

Select source "Installation"

Type the path where you extracted the SDK, in our case: ${eclipse_home}\sdk

The eclipse will recognize the plugins, then finish the dialog.

Open the view "Plugins" and select all

Right-click, select "Add to Java Search". This step may take a while to complete.

Ok, now both our server and our client should be read to extending RTC and debugging .
Let's try to debug by placing a breakpoint on a server call . To do this, find and open the class ServerStatusRestService.

Navigate to the method declaration getActiveServiceInfo() and insert a breakpoint in the first line.

Now create a new debug configuration. Go to menu Run -> Debug Configurations and add a new item Remove Java Application

Configure the port as we configured in server.startup file (in our case: 2244) and click on debug.

Now we call the event which will trigger our breakpoint. Access the administrative area of the Jazz Team Server

Click on Active Services. This should trigger our breakpoint.

If all goes as planned, you'll see the debug screen on the client


Okay, now the environment is completely configured for development and extending Rational Team Concert.
In future posts we will finally see how to extend RTC.
Leave your comments, critics, suggestions. Your feedback is very important to make me improve the material. Despite the fact that I'm relatively "old" in development world, I am entirely new in this area of articles, blogs and video lessons.
Some spelling errors may occur. If you find any misspelled words, let me know.