Git Repository

The source code of the ACTF project can be found in the Git Repository. To access repository list, please visit "Developer Resources" tab of ACTF project page.

For more details to use Git in Eclipse, please visit EGit User Guide page.

Development Guidelines

1. Naming Conventions

Naming Conventions in the ACTF project follow the Eclipse Naming Conventions except for Java packages containing 'internal', 'tests', or 'examples'.

Java Packages

One of the main goals of this naming convention is to make it easy to find the component to which any given class belongs. The general form of java package names is as follows:

  • org.eclipse.actf.<component>[.*]

Currently, ACTF includes the components listed below. This table also shows the subcomponents within each ACTF component. The directory structure of the Git repository is defined based on this grouping.

Group Component name Description
common accservice includes components for accessing native accessibility architectures and APIs
core is reserved for future use
model includes components to support access to runtime properties of GUI components, document elements, and other runtime structures. It also includes typical application plugins as Editor Extensions.
mediator includes mediator services.
repository includes repository services.
util includes common utilities for other ACTF components.
ai ai includes components for adaptive interfaces.
examples examples includes exemplary applications.
validation validation includes validation engine, rulebase manager, interfaces for and base implementations of rulesets and rules and so on.
visualization report includes report generators.
visualization includes accessibility/usability visualization engines.

In the ACTF project, the reserved words 'internal', 'tests', or 'examples' may appear after the component name. For example, org.eclipse.actf.validation.tests indicates test cases that are used for the validation component. The prefered usage is to put the reserved names in the fifth position, leaving the fourth position for the component name. In addition to this, each component has its own ui components in the ACTF project. So, the word "ui" may appear after the component name as well.

The names of internal/tests/examples/ui packages in ACTF will be:

  • org.eclipse.actf.<component>.internal[.*] - internal packages of <component>
  • org.eclipse.actf.<component>.tests[.*] - test packages of <component>
  • org.eclipse.actf.<component>.examples[.*] - examples of <component>
  • org.eclipse.actf.<component>.ui[.*] - ui components of <component>

2. Directory structure

We will ask you to organize your files as described below. Basically you will need to create the following directory structure for each subdirectory you own under the ACTF component group:

Directory structure
/gitroot/actf/
  org.eclipse.actf.[group].git/
    plugins
    doc
    tests
    features
  1. plugins:
    • the plugins that provide the function
  2. doc:
    • the doc plugins
  3. tests:
    • the test plugins
  4. features:
    • the SDK feature (to generate a bundle that includes source + the plugins) and fragments
    • all main, source, test, doc, and example features and fragments

The projects containing features and fragments must be suffixed by -feature and -fragment respectively.

3. Coding conventions

The ACTF project uses the built-in Java-convention in Eclipse.

4. Namespace URI conventions

To avoid unexpected propagation, namespace URIs in ACTF project will be defined as follows:

  • http://www.eclipse.org/projects/actf/<component>[/*]

If you need to create new namespaces, please submit a request to the newsgroup.

5. APIs

In ACTF, all internal APIs are in internal packages and currently are not exported to others. (see also Naming Conventions)

All public APIs exported to others are currently provisional. ACTF plans to freeze the APIs after reflecting community feedback in Indigo release (0.9), then all APIs will be graduating from provisional in Juno release (1.0).

6. Others

For more details about development conventions and guidelines, please visit Eclipse development guidelines page.