‘Oracle Team Productivity Center (TPC) is an Application Lifecycle Management (ALM) tool that enables software development teams to collaborate and work productively together when developing applications using JDeveloper.’ (OTN TPC page)
TPC provides unified access to different ALM repositories from within JDeveloper and it allows to define relations between the so-called work-items in these (separate) repositories. It consists of a central repository, a JDeveloper extension and a set of connectors to other systems. Currently, connectors to Jira, Bugzilla, Rally Software and Microsoft Project Server – task management are available. This means that we can, for example, access and work on our Jira issues from within JDeveloper. In addition it provides a task service and a Google Talk client for JDeveloper.
TPC is installed on an application server, e.g. Tomcat or Weblogic and requires a database to store its data. It also requires the connectors to be installed, although they are not really used to connect to the other systems. The connection to the repositories is made from JDeveloper, so you need the connectors and TPC extension.
The TPC architecture:
The installation process is actually quite easy, although there are a few issues.
- Java 6
- An application server
- A database user with basic privileges.
Installation (or upgrade) in a nutshell. A more elaborate installation manual can be found on OTN:
- Install Team Productivity Center.
- Start the TPC installer with – java -jar tpcinstaller.jar, which launches the installer (actually, I discovered today that double click also works :-)) and follow the instructions.
- You can both install tpc and the connectors, but I had a problem with installing the connectors (see below) so better install only the server
- Provide the deployment directory of the application server, e.g. C:\server\tomcat\webapps
- Note, the update on Tomcat 6.0.20 doesn’t replace the current webapp. After you finish the tpc installer, stop Tomcat, remove the webapps\otpc directory and restart Tomcat.
- Provide the database information
- Define the admin user.
- Install connectors on the TPC server
- I was not able to install the connectors via the Extension Update process, so I had to download them first from OTN (they’re next to the tpc download).
- Launch the installer again and follow the instructions.
- Install the TPC extension in JDeveloper using the standard ‘Check for update’ wizard.
- Install the connectors in JDeveloper using the standard update wizard, but again use the previously downloaded files (they ar both for the server and JDev).
- You’re now ready to use the Team Navigator in JDeveloper.
- Note, there is an issue with version numbers with the latest TPC extension. When you try to connect to the server from JDeveloper (see below) and you’re presented with the message ‘TPC-60013: TPC client version “18.104.22.168.37.56.60” is not supported. Supported version is “22.214.171.124.37.56.67” or higher. Please use Check for Update to upgrade your client.‘ you have to manually change the version in the TPC server database table otpc_version into 126.96.36.199.37.56.60.
Before you can use any of the connectors, for example the Jira connector, the Team Center must be configured with team, user, role and repository information. This is all done via JDeveloper:
When first time user, you connect with the administrator account that’s created during the installation.
I will not go into much detail because this is covered in the OTN tutorial ‘Getting started with TPC‘. It demonstrates how to organize the TPC and how to work with workitems, which is the base concept of TPC. It’s a representation of something in a repository (e.g. an issue in Jira) so that they can be handled in a uniform way. Make sure that when you use the Jira connector that Jira (and possibly other systems too) must be configured to ‘Accept remote API calls’.
For me the most interesting part is access to Jira issues from within JDeveloper. That functionality is definitely very handy and also works as expected. I can update my issues, add comment, change status etc, although I cannot create one. TPC also allows to associate (Java) code to a Jira issue (or more), or other workitems like tags or tasks. This is done at commit time and is stored in the TPC repository:
Unfortunately, it doesn’t add the issue key to the commit message, which Jira uses to associate subversion commits with its issues, so the information is only available in TPC and not in Jira and you have to do that yourself. This would be a great enhancement…
There’s a lot more available in TPC, but I haven’t been able to use it and give my opinion about it. I’m also not a user of Bugzilla, Rally Software and MS project server so I cannot elaborate on that too. I’m looking forward to integrate other systems with TPC, for example Hudson or Sonar to have direct feedback about the jobs or to even start it directly. If you want to make your own connector, a developers kit is available with an example and little documentation. I’ve started working on a Hudson connector, but haven’t managed it yet. I’ll keep you posted.
I think that the Team Productivity Center is a valuable addition to the development environment. It allows for a central, one-time, configuration of all the repositories like Subversion and Jira to teams and it’s users. It’s also very handy to have direct access to the Jira issues from within JDeveloper and to work on them. That’s for me the killer feature of TPC.
Although I like the idea that items, like code, tasks, issues, tags etc. can be related to each other, I’m not sure if it’s very useful in practice, because it’s only available from within JDeveloper, which is not a good tool for project managers. Jira already allows for integration with Subversion and other systems, but that’s not used in TPC.
Although, I haven’t had any project experience with TPC, I’m not yet completely convinced. It’s great to access Jira or another repository from with JDeveloper, but for this an extension could be enough andÂ as mentioned before I’m not sure about the associations. I’m interested how TPC will develop and what place it will find in the development process.