UIMA project logo
Source Code
Apache UIMA

Search the site

 Apache UIMA™ Source Code

 Source Code Repository

Apache UIMA uses Subversion and Git to manage its source code. uimaj, uimaFIT, and uima-cpp have moved to GIT, the other projects are in SVN.

The code for UIMA is stored in several repositories:

  1. addons - a collection of add-ons for UIMA including annotators
  2. sandbox - a collection of new things for UIMA, not yet released
  3. uimacpp - the C++ framework supporting Annotators written in C++
  4. build - Build information and configurations used in building from sources

Each of these have multiple branches: trunk or master - for the latest, tags - for preserved copies of releases, and branches for special development efforts.

To receive notice of commits to the repository subscribe to commits@uima.apache.org by sending email to commits-subscribe@uima.apache.org.

UIMA projects in GIT

The UIMA projects uimaj, uimacpp, and uimaFIT are at github in the apache organization. More information on GIT use is git.html.

Web Access to Subversion

See SVN setup for details on how to setup SVN.

If you just want to browse the source code in SVN, you can use the viewvc web interface to Subversion. This is current at all times.

 Checking Out Code Using Subversion

Anyone can check code out of Subversion. Username and password are only needed to update the Subversion repository; only UIMA committers can do that. If you are a committer, are working from behind a firewall, or are connected to the internet through a proxy server, please see the sections below for more information.

Anonymous check out from Subversion

Use a command like:

% svn checkout https://svn.apache.org/repos/asf/uima/uimaj/trunk

Once you have Apache UIMA checked out you can update your working copy of the checked-out sources, to pick up any changes committed since you checked things out, by executing the following command from within the UIMA directory.

% svn update

Access from behind a firewall

For those users who are behind a corporate firewall which is blocking http access to the Subversion repository, you can try to access it via HTTPS:

% svn checkout https://svn.apache.org/repos/asf/uima/uimaj/trunk

Access through a proxy

The Subversion client can go through a proxy, if you configure it to do so. First, edit your "servers" configuration file to indicate which proxy to use. The location of this configuration file depends on your operating system. On Linux or Unix it is located in the directory "~/.subversion". On Windows it is in "%APPDATA%\Subversion". (Try "echo %APPDATA%", note this is a hidden directory.)

There are comments in the file explaining what to do. If you don't have that file, get the latest Subversion client and run any command; this will cause the configuration directory and template files to be created.

Example : Edit the 'servers' file and add something like :

[global]
http-proxy-host = your.proxy.name
http-proxy-port = 3128

Committer access

Everyone can access the Apache UIMA Subversion repository via HTTPS. Apache UIMA Committers must checkout the Subversion repository via HTTPS (not HTTP), in order to be able to check in changes.

% svn checkout https://svn.apache.org/repos/asf/uima/uimaj/trunk

 Submitting Code Changes

Submitting a patch

If you make changes to Apache UIMA, and would like to contribute this to the project, you should open a JIRA issue and discuss the changes with the developer community. If there is agreement, create a patch and attach it to the JIRA issue.

To create a patch, use the Eclipse Team -> Create Patch command select the project in the Package Explorer, right click it to find the Team menu in the context menu). Or, use the command line and execute the svn diff command. This creates a patch that can easily be uploaded to a JIRA issue. A good name for the patch includes the JIRA issue name, e.g. UIMA-104.patch. If there are several patches for the same JIRA issue, you might include a short identifying description, or your initials, e.g. UIMA-104.clr.patch

% svn diff > UIMA-104.clr.patch

Committing changes to subversion

To commit changes to the subversion repository, you must be an Apache UIMA committer. See get involved for information on how to become a committer and how to set up your password once you become a committer.

Once your password is set, you can commit from Eclipse using the Team -> commit context menu. You can do this on an individual file, a set of files or directories (multi-select), or on whole project(s). You can also commit from the command line like this:

$> svn commit --username your-username \
 Authentication realm: <https://svn.apache.org:443> \
 ASF Committers Password for 'your-username': your-password

You can also pass your password on the command line directly, but this is a security problem on multiuser unix computers (the command line arguments are available via the ps command). Here is the command if you are Windows or a single user unix computer:

$> svn commit --username your-username \
  --password your-password

Remember to replace 'your-username' and 'your-password' with your actual username and password on svn.apache.org.

Please also add to your commit statement an appropriate message that explains the changes you did. You can add a message when adding --message to your commit statement:

$> svn commit --username your-username \
  --password your-password --message your-message

Please always enter the JIRA issue key or keys (if more than one issue) and optionally, the JIRA issue link to the commit message. The issue key (e.g., UIMA-555) is important so that the JIRA SVN plugin can detect the changes automatically. Only specifying the issue link does not work correctly, for details please see the JIRA issue https://jira.atlassian.com/browse/SVN-37.