Differences between revisions 16 and 17
Revision 16 as of 2009-08-27 10:58:01
Size: 4873
Editor: jrg
Comment:
Revision 17 as of 2010-03-17 13:12:58
Size: 4876
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
 * {{{lib/}}} - A folder for project libraries (see the [#lib lib/] section below)  * {{{lib/}}} - A folder for project libraries (see the [[#lib|lib/]] section below)
Line 44: Line 44:
 * {{{lib/}}} - A folder for module libraries (see the [#lib lib/] section below, including module lib restrictions).  * {{{lib/}}} - A folder for module libraries (see the [[#lib|lib/]] section below, including module lib restrictions).
Line 58: Line 58:
 * {{{dist/}}} - Folder with generated Release packages (see the [#dist dist/] section below)  * {{{dist/}}} - Folder with generated Release packages (see the [[#dist|dist/]] section below)
Line 61: Line 61:
[[Anchor(lib)]] <<Anchor(lib)>>
Line 80: Line 80:
[[Anchor(dist)]] <<Anchor(dist)>>
Line 82: Line 82:
Contains generated zip-files (from ant target), see [:ModuleReleaseStructure: module release structure] and [:Ant: Ant] guidelines. Contains generated zip-files (from ant target), see [[ModuleReleaseStructure| module release structure]] and [[Ant]] guidelines.

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/ - Optional - A folder for general project documentation - anarchy governs this directory

  • lib/ - A folder for project libraries (see the 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:

  • 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/ - Optional - a folder for module documentation - anarchy governs this directory

  • lib/ - A folder for module libraries (see the lib/ section below, including module lib restrictions).

  • 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/ - Optional - 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/ section below)

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.

dist/

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

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