Stuart McCulloch | 26e7a5a | 2011-10-17 10:31:43 +0000 | [diff] [blame^] | 1 | package aQute.lib.osgi; |
| 2 | |
| 3 | /** |
| 4 | * This package contains a number of classes that assists by analyzing JARs and |
| 5 | * constructing bundles. |
| 6 | * |
| 7 | * The Analyzer class can be used to analyze an existing bundle and can create a |
| 8 | * manifest specification from proposed (wildcard) Export-Package, |
| 9 | * Bundle-Includes, and Import-Package headers. |
| 10 | * |
| 11 | * The Builder class can use the headers to construct a JAR from the classpath. |
| 12 | * |
| 13 | * The Verifier class can take an existing JAR and verify that all headers are |
| 14 | * correctly set. It will verify the syntax of the headers, match it against the |
| 15 | * proper contents, and verify imports and exports. |
| 16 | * |
| 17 | * A number of utility classes are available. |
| 18 | * |
| 19 | * Jar, provides an abstraction of a Jar file. It has constructors for creating |
| 20 | * a Jar from a stream, a directory, or a jar file. A Jar, keeps a collection |
| 21 | * Resource's. There are Resource implementations for File, from ZipFile, or from |
| 22 | * a stream (which copies the data). The Jar tries to minimize the work during |
| 23 | * build up so that it is cheap to use. The Resource's can be used to iterate |
| 24 | * over the names and later read the resources when needed. |
| 25 | * |
| 26 | * Clazz, provides a parser for the class files. This will be used to define the |
| 27 | * imports and exports. |
| 28 | * |
| 29 | * A key component in this library is the Map. Headers are translated to Maps of Maps. OSGi |
| 30 | * header syntax is like: |
| 31 | * <pre> |
| 32 | * header = clause ( ',' clause ) * |
| 33 | * clause = file ( ';' file ) * ( parameter ) * |
| 34 | * param = attr '=' value | directive ':=' value |
| 35 | * </pre> |
| 36 | * These headers are translated to a Map that contains all headers (the order is |
| 37 | * maintained). Each additional file in a header definition will have its own |
| 38 | * entry (only native code does not work this way). The clause is represented |
| 39 | * as another map. The ':' of directives is considered part of the name. This |
| 40 | * allows attributes and directives to be maintained in the clause map. |
| 41 | * |
| 42 | * @version $Revision$ |
| 43 | */ |
| 44 | public class About { |
| 45 | |
| 46 | } |