Mercury TestDirector Prototyping:
Test Director
Server is J2EE, communicates with clients over HTTP. However, this protocol is closed.
Clients have an ActiveX (COM) control used to communicate with the server. This control has a published COM API with examples.
Steps
Java/COM bridging is possible with JACOB, but this easiest when you
have a stable target to aim for. .NET can do this very easily, and
producing and consuming web services is ludicrously simple compared
with playing with things like Axis. Aim for Java in long-term, but
prototype in short term.
Step 1: Do a quick prototype of a SOAP interface for TD in C#,
since this binds to both COM components and creates SOAP Web Services
very easily.
Thoughts: SOAP API needs to only be complete enough to perform this
integration. One idea is that if it looked generic (or even, the same
as the JIRA SOAP API), then connecting together arbitary issue
repositories would be easy!
Step 2: Create a quick (C#) client that calls said SOAP interface, demonstrating issues being created in TD.
Step 3: Extend client to call JIRA, demonstrating issues being created in JIRA
Step 4: Extend client to show a forwards / backwards synchronisation by using the 2 APIs
Step 5: Automatic triggering - is it possible to get this process to
be triggered, or will it have to poll each system (answer is probably
'yes' - email at worst case - JIRA is likely to be easier than TD)
Step 6: convert 'client' program to Java / Jelly / JIRA plugin - what is the right option?
Step 7: Convert C# SOAP/COM bridge to Java (probably JACOB, Axis).
Could/should this be hosted in the same server as JIRA (only if it is a
windows box!)
Step 8: Enjoy!
Unknowns
- Is TD interface "sufficent", or will we need to access it's database directly at some time?
- How
easy to synchronise status changes (e.g. can set Resolved in JIRA and
Closed in TD and sync correctly? may need to store timestamps of
changes)
Thoughts
- Is there (should there be) a 'generic' API /
XML format for "issues" ? Or is it just re-create a subset of the JIRA
interface..