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
- 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
- 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/modulesare 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.