Differences between revisions 11 and 12
Revision 11 as of 2009-08-24 13:42:43
Size: 4471
Editor: jrg
Comment:
Revision 12 as of 2009-08-24 14:08:05
Size: 4878
Editor: jrg
Comment:
Deletions are marked like this. Additions are marked like this.
Line 26: Line 26:
 * {{{apidocs/}}} - Folder for generated javadoc
Line 44: Line 45:
 * {{{lib/}}} - A folder for module libraries (see the [#lib lib/] section below)  * {{{lib/}}} - A folder for module libraries (see the [#lib lib/] section below). Note:
Line 58: Line 59:
 * {{{classes-test/}}} - Folder for generated class files for junit test cases
 * {{{apidocs/}}} - Folder for generated javadoc
Line 74: Line 73:
=== Module libs ===
Modules can have module specific libs in their lib folder (and all libraries in a module lib folder are module libs). There are certain restrictions on module libs:
 * They must not be exposed in any way in the module public interface. In other words, people building against this module should not need to know about the module lib.
 * They must not be used by other modules in the project. If they are, they should be promoted to project libraries.

Directory Layout

This page describes the directory layout in each of the Subversion trunks (separate IDEA projects) that are part of the Subversion repository of the Sourceforge DOMS project.

Top level

The top level directory has the following:

  • <IDEAprojectname>.ipr - The IDEA project file

  • <IDEAprojectname>.iml - The IDEA virtual project module file

  • LICENSE - A text file containing the Apache License version 2.0

  • NOTICE - A text file containing attribution notices (see Apache 2.0 License)

  • README - A text file giving an overview of this IDEA project, including this directory explanation, as well as info on how the project is used and further developed by contributers.

  • qascan.xml - Configuration file for automated code QA checking

  • build.xml - Project ant targets

  • build.properties - Project ant target properties

  • build-includes.xml - Generally useful ant code. This should be the same for every sourceforge package.

  • build-rest-webservices.xml - Optional - webservice-related ant code. This should be the same for every sourceforge package.

  • build-soap-webservices.xml - Optional - webservice-related ant code. This should be the same for every sourceforge package.

  • docs/ - A folder for general project documentation - anarchy governs this directory

  • lib/ - A folder for project libraries (see the [#lib lib/] section below)

  • bin/ - Scripts for the project

  • modules/ - A folder containing any number of modules and/or module groups

And not in SVN:

  • apidocs/ - Folder for generated javadoc

  • <IDEAprojectname>.iws - IDEA workspace configuration file

Module groups

A module group is a directory with name <modulegroupname> in lower case, containing the following:

  • <modulegroupname>.iml - The IDEA module group file.

  • A number of directories, each a module or module group.

Modules

Each module, with name <modulename>, is contained in a directory named after the module - module names are in lower case. This directory contains the following:

  • <modulename>.iml - The IDEA module file, module names are lower case

  • data/ - Optional - a folder for data belonging to the module - anarchy reigns

  • docs/ - A folder for module documentation - anarchy governs this directory

  • lib/ - A folder for module libraries (see the [#lib lib/] section below). Note:

  • config/ - Folder with module configuration files

  • src/ - Module java source

  • test/ - Unit tests for java source

  • test/data - Data used by unit tests

  • bin/ - Scripts for the module

  • web/ - Contains a WEB-INF directory and potentially jsp- and html-files for the module

  • build.xml - Module ant targets

  • build.properties - Optional - module ant target properties

  • build-rest-webservices.xml - Optional - webservice-related ant code. This should be the same for every sourceforge package.

  • build-soap-webservices.xml - Optional - webservice-related ant code. This should be the same for every sourceforge package.

And not in SVN:

  • classes/ - Folder for generated class files

  • dist/ - Folder with generated Release packages (see the [#dist dist/] section below)

Anchor(lib)

lib/

Contains a directory for each library-package we use, with directory name of the style <libraryname>-<version>, for example fedora-client-3.2.1. Each of these directories contain the following subdirectories:

  • jars/ - contains all jar-files in the package

  • apidocs/ - contains zipfiles with apidocs for the package itself, as well as potentially docs for the libraries the package depends on.

  • src/ - contains zipfiles with sources for the package itself, as well as potentially sources for the libraries the package depends on.

  • license/ - contains all license-information contained in the package

Each lib must be accompanied by license, and preferably includes apidocs and src for the package itself.

Module libs

Modules can have module specific libs in their lib folder (and all libraries in a module lib folder are module libs). There are certain restrictions on module libs:

  • They must not be exposed in any way in the module public interface. In other words, people building against this module should not need to know about the module lib.
  • They must not be used by other modules in the project. If they are, they should be promoted to project libraries.

Anchor(dist)

dist/

Contains generated zip-files (from ant target), see [:ModuleReleaseStructure: module release structure] and [:Ant: Ant] guidelines.

Directory layout (last edited 2010-10-27 11:50:12 by abr)