This appendix describes what parts of the repository is used for what purpose. This is a rather terse collection. Further details on specific parts can sometimes be found elsewhere in this document.
This explanation only describes the single Tigris project layout. Lately (since beginning of 2006) we have been working with splitting the project over several Tigris projects. This is not yet described here.
This page is organized as the repository itself and everything is in alphabetical order.
This is the normal structure for any argouml jar file and project.
When built, the result end up in a newly created build directory. buildDirectory where the built things end up when building with ant. This is not kept in the repository. It is created by the build. For historic reasons this actually exists in the CVS repository of some of the projects. This will be fixed after the move to SVN. build-eclipseDirectory where the built things end up when building with Eclipse. This is not kept in the repository. It is created by the build. libjar files used by the project. This directory contains the jar files of products that are shipped with the project i.e. needed to run the project. For ArgoUML this is things like log4j, gef, ... These are distributed with ArgoUML and have licenses that allow this. For clarity the README files and licenses and other distribution details of each used jar will also be stored in this directory. (Quick summary: BSD License, Apache License, LGPL are OK, GPL is not.) Don't forget to arrange for the modules version and license information to appear when starting ArgoUML and in the About box. Take care also to make the versions of these libraries explicit, so as to allow people building from sources to figure out exact dependencies. Easiest way is to rename the files to include version information, the same way as shared libraries in Unix world: foo-x.y.z.jar, bar-x.y.z.jar, etc... srcSource code. This directory contains exactly one java class tree that is build into exactly one jar file. tests
- The file controlling the build of that subsystem.
Source code for JUnit tests of everything that is in the src directory. See The JUnit test cases. This directory contains exactly one java class tree. toolsTools used during the build process. Tools also have the readme files, licenses and other distribution files stored in this directory in much the same way as the libraries in lib. However the requirement on the license is different. The tools are never distributed with ArgoUML but merely used in the development of ArgoUML so it is enough to have a license that does not allow distribution. (Quick summary: BSD License, Apache license, LGPL, GPL, Freeware are OK.) META-INFSpecification of properties for Eclipse RCP plugins These files are modified by Eclipse to keep track of the relationship between the Eclipse projects or built jar files.
Because of they way the Tigris site works there is also the following:
- This is all the static contents of the web site.
For historic reasons the argouml project i.e. the main project looks a little bit different.
- Directory where the source of the documentation is.
- XML Tools and configuration files used for the formatting of the documentation from the XML-source to HTML and PDF.
- In conflict with the description above this directory contains one directory for each subsystem within ArgoUML. Each directory is a complete tree as described above.
The ArgoUML subprojects are projects on Tigris that belong to the ArgoUML project. To simplify the administration, they are all set up in the same way, i.e. as describe above.