blob: 726521242e0a71cad8a70d32ec10e110e2c0f4a6 [file] [log] [blame]
Stuart McCullochbb014372012-06-07 21:57:32 +00001package aQute.lib.osgi;
2
3import aQute.libg.header.*;
4
5/**
6 * This package contains a number of classes that assists by analyzing JARs and
7 * constructing bundles.
8 *
9 * The Analyzer class can be used to analyze an existing bundle and can create a
10 * manifest specification from proposed (wildcard) Export-Package,
11 * Bundle-Includes, and Import-Package headers.
12 *
13 * The Builder class can use the headers to construct a JAR from the classpath.
14 *
15 * The Verifier class can take an existing JAR and verify that all headers are
16 * correctly set. It will verify the syntax of the headers, match it against the
17 * proper contents, and verify imports and exports.
18 *
19 * A number of utility classes are available.
20 *
21 * Jar, provides an abstraction of a Jar file. It has constructors for creating
22 * a Jar from a stream, a directory, or a jar file. A Jar, keeps a collection
23 * Resource's. There are Resource implementations for File, from ZipFile, or
24 * from a stream (which copies the data). The Jar tries to minimize the work
25 * during build up so that it is cheap to use. The Resource's can be used to
26 * iterate over the names and later read the resources when needed.
27 *
28 * Clazz, provides a parser for the class files. This will be used to define the
29 * imports and exports.
30 *
31 * Headers are translated to {@link Parameters} that contains all headers (the
32 * order is maintained). The attribute of each header are maintained in an
33 * {@link Attrs}. Each additional file in a header definition will have its own
34 * entry (only native code does not work this way). The ':' of directives is
35 * considered part of the name. This allows attributes and directives to be
36 * maintained in the Attributes map.
37 *
38 * An important aspect of the specification is to allow the use of wildcards.
39 * Wildcards select from a set and can decorate the entries with new attributes.
40 * This functionality is implemented in Instructions.
41 *
42 * Much of the information calculated is in packages. A package is identified
43 * by a PackageRef (and a type by a TypeRef). The namespace is maintained
44 * by {@link Descriptors}, which here is owned by {@link Analyzer}. A special
45 * class, {@link Packages} maintains the attributes that are found in the code.
46 *
47 * @version $Revision$
48 */
49public class About {
50
51}