blob: 3b4670a1dc92807a05e0f4e9d9467b0cb696de61 [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<html>
<head>
</head>
<body>
<p>
This packages gathers classes used to represent identifiers of objects involved in dependency management.
</p>
<p>
As identifiers, they do not store any information on the module content and detailed metadata (like dependencies).
</p>
<h2>Classes</h2>
<dl>
<dt>ModuleId</dt><dd>is used as the identifier of module, without considering its version. It's basically an organization and module name couple.</dd>
<dt>ModuleRevisionId</dt><dd>is used as the identifier of a module in a particular version or version constraint. It is composed of a ModuleId, a revision, and optionally a branch and extra attributes.</dd>
<dt>ArtifactId</dt><dd>identifies an artifact without considering its version. It's basically a ModuleId and an artifact name, type and extension, plus optional extra attributes.</dd>
<dt>ArtifactRevisionId</dt><dd>identifies an artifact of a module in a particular version. It is composed of a ModuleRevisionId along with artifact identifier like the name type and extension.</dd>
</dl>
<h2>Text Representation</h2>
<p>
These classes share an homogeneous text representation, which can be easily obtained through the toString() method.
</p>
<p>
The general pattern is: <code>[organisation]#[module]#[branch];[revision]![artifact].[ext]([type])</code>
The # before the branch is present only if the branch is not empty.<br/>
The type and surrounding parenthesis are present only if different from the extension.
</p>
<p>
A textual representation can be parsed into an object (supported for ModuleRevisionId only yet), as long as a strict set of characters is used for each field (which is recommended).
</p>
Allowed characters are:
<dl>
<dt>organisation</dt><dd><code>a-z A-Z 0-9 - / . _ + =</code></dd>
<dt>module</dt><dd><code>a-z A-Z 0-9 - / . _ + =</code></dd>
<dt>branch</dt><dd><code>a-z A-Z 0-9 - / . _ + =</code></dd>
<dt>revision</dt><dd><code>a-z A-Z 0-9 - / . _ + = , [ ] { } ( ) : @</code></dd>
<dt>artifact</dt><dd><code>a-z A-Z 0-9 - / . _ + =</code></dd>
<dt>extension</dt><dd><code>a-z A-Z 0-9 - / . _ + =</code></dd>
<dt>type</dt><dd><code>a-z A-Z 0-9 - / . _ + =</code></dd>
</dl>
</body>