Login | Register
My pages Projects Community openCollabNet

argouml
Wiki: Diff for "Repository Contents"

Edit this page | Links to this page | Page information | Attachments | Refresh page

 

Differences between revisions 1 and 13 (spanning 13 versions)

Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
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.
[Note] Note
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.
Line 4: Line 3:
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. There are two types of places where you will find this directory structure:
Line 6: Line 5:
This chapter is organized as the repository itself and everything is in alphabetical order.  * 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/`
Line 8: Line 8:
This is the normal structure for any argouml jar file and project. The listing below describes the files that you will find directly below the paths above.
Line 10: Line 10:
    *  build.xml:: 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"].
Line 12: Line 13:
      build.xml  build:: Location of the output built by Ant.
 . This is generated at build time, and does not exist in the repository.
Line 14: Line 16:
      The file controlling the build of that subsystem.  build-eclipse:: Directory where the built things end up when building with Eclipse.
 . This is generated at build time, and does not exist in the repository.
Line 16: Line 19:
      When built, the result end up in a newly created build directory.
    *
 lib:: jar 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...
Line 19: Line 24:
      build  src:: Source 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.
Line 21: Line 29:
      Directory where the built things end up when building with ant.  tools:: Tools used during the build process and configuration for such tools.
 . 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.)
 . Configuration for a tool includes Eclipse configurations and checklipse settings.
Line 23: Line 33:
      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.
    *
 META-INF:: Specification 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.
Line 26: Line 36:
      build-eclipse

      Directory where the built things end up when building with Eclipse.

      This is not kept in the repository. It is created by the build.
    *

      lib

      jar 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...
    *

      src

      Source code.

      This directory contains exactly one java class tree that is build into exactly one jar file.
    *

      tests

      Source code for JUnit tests of everything that is in the src directory. See Section 2.7, “The JUnit test cases”.

      This directory contains exactly one java class tree.
    *

      tools

      Tools 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.)

Because of they way the Tigris site works there is also the following:

    *

      www

      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.

    *

      documentation

      Directory where the source of the documentation is.
          o

            cookbook

            XML-source code for this cookbook.
          o

            docbook-setup

            XML Tools and configuration files used for the formatting of the documentation from the XML-source to HTML and PDF.
          o

            images

            Pictures for all documents are collected here.
          o

            javahelp

            Not used. Empty.
          o

            manual

            XML-source code for the User Manual.
          o

            quick-guide

            XML-source code for the Quick Guide.

      It is not yet decided how to handle the User Manual in other languages. It is probably best if they reside in the documentation directory in the subproject for that language. That would make the correct group of developers get access to the files without special features.

      Documentation for features and functions provided by other projects are, for the time being, best kept in the one big User Manual.
    *

      modules

      Old module structure. To be removed.
    *

      src

      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.
    *

      src_new

      All source code for ArgoUML including pictures of icons.

      This is replacing the src directory above with the exception that it also contains the build.xml file.

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

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.

build.xml
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.

  • build
    Location of the output built by Ant.
  • This is generated at build time, and does not exist in the repository.
  • build-eclipse
    Directory where the built things end up when building with Eclipse.
  • This is generated at build time, and does not exist in the repository.
  • lib
    jar 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...
  • src
    Source 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.
  • tools
    Tools used during the build process and configuration for such tools.
  • 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.)
  • Configuration for a tool includes Eclipse configurations and checklipse settings.
  • META-INF
    Specification 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/


    CategoryFromCookbook

    Repository Contents (last edited 2010-01-20 06:15:20 -0800 by linus)