Class Analyzer

All Implemented Interfaces:
Constants, Registry, aQute.service.reporter.Report, aQute.service.reporter.Reporter, Closeable, AutoCloseable, Iterable<String>
Direct Known Subclasses:
Builder

public class Analyzer extends Processor
This class can calculate the required headers for a (potential) JAR file. It analyzes a directory or JAR for the packages that are contained and that are referred to by the bytecodes. The user can the use regular expressions to define the attributes and directives. The matching is not fully regex for convenience. A * and ? get a . prefixed and dots are escaped.
 *;auto=true             any
 org.acme.*;auto=true    org.acme.xyz
 org.[abc]*;auto=true    org.acme.xyz
 
Additional, the package instruction can start with a '=' or a '!'. The '!' indicates negation. Any matching package is removed. The '=' is literal, the expression will be copied verbatim and no matching will take place. Any headers in the given properties are used in the output properties.