I am trying to do the following using Eclipse 3.4 (Ganymede) and VP-UML 6.4 and its IDE integration:
- create a VP-UML project for one module of a larger project consisting of several modules
- make some UML diagrams for the single module
- keep VP-UML project in CVS with Teamwork client
- do Round-Trip Engineering to keep the code and the diagrams up-to-date
I have troubles doing this because:
- sometimes when I try to commit the VP project into CVS using Teamwork client in Eclipse integration it says that the version is wrong (current version 0 < server version 3 or something like that).
- I cannot use classes from other modules in the project in VP project because if I import them into Class Repository and do update to Eclipse the code for them will be generated in the module I’m working with and that is wrong (I’m not sure about this though). Or if I set up a source directory for Reverse Engineering to point to the source directoty of an other module in the project and try to update model to Eclipse I start getting errors like “Cannot create code” and into vp.log:
[Mon Mar 09 10:48:47 EET 2009] [warning] Cannot get the source root. [Mon Mar 09 10:48:47 EET 2009] [warning] java.lang.NullPointerException at v.frsk.t(:433) at v.iwlt.f(:103) at v.iosd.d(:164) at v.iqfc.run(:15)
Next I’m going to try to use a clean Eclipse and VP installations and start over with these steps:
- Get the source of the whole project from CVS
- Create VP project for the module I’m working on in Eclipse
- Import that VP project into CVS using Teamwork client (I guess that the VP project must be put into different directory in CVS than it is in local directory under Eclipse (default vpproject dir)? Does it also mean that vpproject directory can be put into .cvsignore and not committed into CVS at all (Teamwork client will handle it?)? Or should the VP projects be preferably in completely different directory than the source codes and the Eclipse project? What is the best way to do this?)
- Reverse engineer existing Java classes into VP project and draw some class diagrams
- Commit the VP project using Teamwork client in Eclipse
- Import some 3rd party jars into VP for Reverse Engineering them into class and sequence diagrams
- Setup source directory for a different module in the project for Reverse Engineering in order to get those classes into class and sequence diagrams for my module (I really hope this is possible and I can use classes from 3rd party modules and other module source directories without the code for them being generated into my own module).
- See how another person on the team can checkout the module and VP project from CVS and start working on it doing the same things: Round-Trip Engineering, Teamwork committing (with conflict awareness) etc.
- Document the procedure for future reference in our company.
I’ll see how that works. Unfortunately the demos and documents on VP site are not so thorough and does not cover anything but the simplest basic things. Or have I missed something?