As an ArgoUML contributor I'm going to blog my activities here, so that they may draw interest by other developers or help other developers when doing tasks similar to what I've done. AND(!) the grand vision that makes an Argonaut what he is, TO THRIVE IN THE BIG DANGEROUS WORLD, TAKING THE Argo TO A GOOD SHORE ;-))

Thursday, December 15, 2005


The template notation spike is documented in a issuezila task (#3802).

Today I contributed my eclipse project files to ArgoUML list, in a reply to a discussion about shared eclipse projects.

Monday, December 12, 2005

Reorganization of ArgoUML eclipse projects

While working in the template notation spike I had to advance some work in the model support for parameterized classes. This implied in making some changes to the ArgoUML model sub-system interfaces and in the NetBeans MDR implementation of the model sub-system. With my previous organization of the eclipse projects this became very cumbersome. I have one eclipse project for ArgoUML, which contained everything bellow cvs/argouml and another with argouml-mdr. The later depended on the former, in order to have the model interface in the class-path - localted in cvs/argouml/src/model. To have the MDR implementation accessible I put argouml-mdr.jar and the other jars from which it depends into the main ArgoUML eclipse project. It was a way to fool eclipse's circular dependency detection. The problem was that I had to do external builds of the MDR jars everytime I made a change in the MDR implementation!

So, after bumping my head against this problem some times I decided that I could benefit from a re-organization of the ArgoUML eclipse projects. Considering the CVS organization of the ArgoUML projects I have defined the folowing eclipse projects:

  • argouml-lib – contains the ArgoUML libraries from cvs/argouml/lib
  • argouml-model-api – contains the ArgoUML model sub-system API, from cvs/argouml/src/model; depends on argouml-lib
  • argouml-mdr – contains the MDR implementation of the model sub-system, from cvs/argouml-mdr/; depends on argouml-lib and argouml-model-api
  • argouml-src_new – contains the core ArgoUML application, from cvs/argouml/src_new; depends on argouml-lib, argouml-model-api and argouml-mdr
  • argouml-tools – contains the tools used in ArgoUML, from cvs/argouml/tools
  • argouml-tests – contains the unit tests of ArgoUML, from cvs/argouml/tests; depends on argouml-lib, argouml-model-api, argouml-mdr, argouml-src_new and argouml-tools
  • argouml-cpp-module – contains the C++ module, from cvs/argouml/modules/cpp; depends on argouml-lib, argouml-model-api, argouml-mdr and argouml-src_new; the other modules within cvs/argouml/modules are loaded in projects similar to this

One thing that I needed was to filter out the NSUML implementation from argouml-src_new. Shouldn't this be removed alredy?!

I think I'll propose this organization in the argouml-dev list, as a possible way to have shared eclipse projects in CVS. I think that this way we will have a much simpler setup for newcomers.

Reader Shared items