Our organization uses a Computer Associates product called CA Software Change Manager to manage change on code and documentation. It used to be called Harvest (much easy to say), so please excuse me, CA, if I go ahead and refer to it as Harvest from this point forward. It’s a very robust and very extensible CM platform. In the past, I’ve built custom extensions for Harvest for our division using SQL and a set of command-line utilities that ship with the product. I’ve been aware for some time, however, that CA also ships the Java Harvest SDK. This is supposed to be the best way to extend and integrate with Harvest.
Here’s a picture of my proposed architecture. Notice where the JHSDK fits in with it.
First major issue I will have to address:
Harvest connection management. JHSDK has a class called com.ca.harvest.jhsdk.JCaHarvest that represents an active session with the Harvest application. My plan is to pool some instances of these classes with a generic webuser account for browse/read-only stuff, but make them authenticate when they need to checkin a new file or checkout a file for update (thereby creating new JCaHarvest instances with their specific logins).
This is an exciting bit of development for me! This wouldn’t be a bad topic for a CA World conference. First things first, let’s get this thing working!
[EDIT: JHSDK blows for a web app. You have to create a service class that wraps system calls to the Harvest CDI…which works just fine]