Login | Register
My pages Projects Community openCollabNet

2020-03-13: This site is going to be decommissioned and shut down very soon. Please copy and archive any data you wish to keep ASAP

2.3. Preparations

In order to develop the ArgoUML source it is absolutely mandatory that you work with ArgoUML from the source repository. How you checkout this is described in Section 2.5, “Downloading from the Subversion repository”.

Notice that the source repository contains not only a set of source files but a complete development environment with required tools for working with ArgoUML.

2.3.1. What do I need to build ArgoUML?

These are the tools not included in the repository that you need to work with ArgoUML.

  • A computer with an Internet connection and free disk space for your work.

    Around 150MB to download everything from the repository. (Currently September 2006 it is 147MB.) Around 200MB to download all and build the tool and the documentation. (Currently September 2006 it is 192MB.) 350MB should be enough to build it all (Javadocs, documentation, classes, ...). (Currently September 2006 it is 299MB.)

  • Subversion for getting the files and committing source code updates. You can also use an IDE with a built-in subversion client.

  • JDK (including the Java compiler)

For building the documentation from DocBook format, you also need the following tools:

  • DocBook XSL style sheets.

    Rules exist in the file argouml/argouml-documentation/documentation/build.xml for downloading this correctly.

  • Jimi

    Used by FOP for including PNG pictures.

    Detailed instructions:

    1. Download the file jimi1_0.zip from java.sun.com.

    2. Extract the file JimiProClasses.zip. Most unzip applications allow you to specify the output location. If you are using one of these, this step can be combined with the next.

    3. If the previous step put the extracted file elsewhere, copy or move this file into the argouml\tools\lib directory.

2.3.2. Configuring Subversion

To reduce problems with line endings and to get the headers working, we use the properties on files in the Subversion repository according to the table below.

Table 2.4. Changes done

PropertyValueComment
svn:keywordsAuthor Date Id Revision All text files, Java files, XML files. This is for the Id-tag at the top of all source files and the Date-tag on some web pages.
svn:eol-stylenative All text files, Java files, XML files, i.e. almost all non-binary files.
svn:eol-styleCRLF All Windows batch files: *.bat.
svn:eol-styleLF All Linux shell files: *.sh.
svn:executable* This is for the tools of the development environment to work properly.

The properties described here are project conventions and should be applied to the files in the repository. This is normally only needed when creating new files because the existing files should have their properties set correctly.

Alas, Subversion and the Tigris set-up does not allow us in the project to enforce this from the Subversion server end. Instead we rely on each developer and the subversion client installation on each developer's machine to perform this correctly.

To get your subversion client to help you in this, make sure the configuration in your subversion client config file contains settings for this. Your subversion client config file is

  • On Windows: %APPDATA%\Subversion\config where %APPDATA% is C:\Documents and Settings\your username\Application Data.

  • On Unix/Linux: $HOME/.subversion/config.

Suggested settings:

[miscellany]
enable-auto-props = yes

[auto-props]
### The format of the entries is:
###   file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?').  All entries which match will be applied to the file.
### Note that auto-props functionality must be enabled, which
### is typically done by setting the 'enable-auto-props' option.
*.java = svn:eol-style=native; svn:keywords=Id Author Date Revision
*.properties = svn:eol-style=native
*.sh = svn:eol-style=LF;svn:executable; svn:keywords=Id Author Date Revision
*.bat = svn:eol-style=CRLF; svn:keywords=Id Author Date Revision
*.txt = svn:eol-style=native; svn:keywords=Id Author Date Revision
*.xml = svn:eol-style=native
*.zargo = svn:needs-lock=*

# Picture formats
*.eps = svn:needs-lock=*
*.jpg = svn:mime-type=image/jpeg; svn:needs-lock=*
*.png = svn:mime-type=image/png; svn:needs-lock=*
*.gif = svn:mime-type=image/gif; svn:needs-lock=*

*.pdf = svn:mime-type=application/octet-stream; svn:needs-lock=*
*.PDF = svn:mime-type=application/octet-stream; svn:needs-lock=*