Modules are stored in locations. When creating a module you have to specify the location in which to create the module. When including a module in your manifest you have to specify the location of the module. For Karma this is the only way to know where to retrieve modules from.
Currently the only supported type of location is a CVS repository. We intend to add more types of locations after the 1.0 release. Possible other types are subversion, disk, ClearCase.
Locations are defined in an xml file. An example of such a location definition is:
<?xml version="1.0" ?> <locations> <location type="cvs" id="cvs-local"> <protocol>[ local | ext | pserver ]</protocol> <host>localhost</host> <port>2401</port> <repository>/home/cvs</repository> </location> </locations>
|type||Type of the location. Currently only CVS repositories are supported||cvs|
|id||Unique identifier of the location.||E.g. cvs.sf.net or local.|
In case of a
cvs type location the following elements are
|protocol||Specifies which protocol is used for accessing the CVS server.||local, pserver or ext|
|host||The name of the server which hosts the CVS server. Is localhost in case of a local reporistory.||E.g.: cvs.sf.net or localhost|
|port||The port number. Ignored in case of a local repository.||E.g. 2401.|
|repository||The full path to the location of the modules in the CVS repo.||E.g. /cvs/karma/modules|
In the above example only one location is defined in the xml file. However it is possible to define more than one location in one xml file. If you prefer, you can also define all locations in separate xml files.
The location definitions are stored in the location store. Each working context has exactly one location store. The location store of a working contexts is part of the bootstrap configuration of a working context. You have to specify the location of the location store when creating a new working context.
Since CVS is currently the only supported type of location, the location store itself is also stored in CVS. Your local copy of the location store is stored within the working context directory on your hard disk: <workingcontext dir>/.admin/location-store.
All locations defined in the location store are loaded by Karma. It does not matter what their file name is or how many locations are defined in one definition file.