Stuart McCulloch | bb01437 | 2012-06-07 21:57:32 +0000 | [diff] [blame] | 1 | package aQute.lib.osgi; |
| 2 | |
| 3 | import 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 | */ |
| 49 | public class About { |
| 50 | |
| 51 | } |