The argouml source code and associated files are split across a number of sub-projects. This page describes each of the directories within argouml and its associated sub-projects. Each project follows the same approximate directory structure, but does not necessarily contain all of the files and directories listed below.
There are two types of places where you will find this directory structure:
Sub-directories (modules) within the main argouml project, i.e. http://argouml.tigris.org/svn/argouml/trunk/src/xxxx/
Sub-projects separate to the main argouml project, i.e. http://argouml-yyyy.tigris.org/svn/argouml-yyyy/trunk/
The listing below describes the files that you will find directly below the paths above.
- The file controlling the build of that subsystem.
When built, the results end up in a newly created build directory. The targets for ant are described in Build Process. buildLocation of the output built by Ant. This is generated at build time, and does not exist in the repository. build-eclipseDirectory where the built things end up when building with Eclipse. This is generated at build time, and does not exist in the repository. launchLaunch configurations used by eclipse. This directory contains launch configurations that Eclipse uses to start ArgoUML with certain settings. When using Eclipse, it is always recommended to use an existing launch configuration where possible. 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 built into exactly one jar file. tests
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. www
The project web site; only seen at this level in separate argouml sub-projects. The website for the main argouml project is at http://argouml.tigris.org/svn/argouml/trunk/www/