Modifier and Type | Class and Description |
---|---|
static class |
Analyzer.Check |
Processor.CL, Processor.FileLine, Processor.SetLocationImpl
Reporter.SetLocation
Report.Location
Modifier and Type | Field and Description |
---|---|
(package private) static java.lang.String |
_classesHelp
The extends macro traverses all classes and returns a list of class names
that extend a base class.
|
(package private) static java.lang.String |
_md5Help
md5 macro
|
(package private) static java.lang.String |
_packagesHelp |
(package private) static java.lang.String |
_sha1Help
SHA1 macro
|
private Descriptors.TypeRef |
activator |
private boolean |
analyzed |
private AnnotationHeaders |
annotationHeaders |
private MultiMap<Descriptors.PackageRef,Descriptors.PackageRef> |
apiUses |
(package private) static java.util.Properties |
bndInfo |
private java.util.Set<Analyzer.Check> |
checks |
private java.util.List<Jar> |
classpath |
private Packages |
classpathExports |
private java.util.Map<Descriptors.TypeRef,Clazz> |
classspace |
private Packages |
contained |
private Contracts |
contracts |
(package private) static java.lang.String |
DEFAULT_CONSUMER_POLICY |
(package private) static java.lang.String |
DEFAULT_PROVIDER_POLICY |
private Descriptors |
descriptors |
(package private) static java.text.SimpleDateFormat |
df |
private boolean |
diagnostics |
private Jar |
dot |
private java.util.SortedSet<Clazz.JAVA> |
ees |
private Packages |
exports |
(package private) boolean |
firstUse |
(package private) static java.util.regex.Pattern |
fuzzyModifier |
(package private) static java.util.regex.Pattern |
fuzzyVersion
Clean up version parameters.
|
(package private) static java.util.regex.Pattern |
fuzzyVersionRange |
private java.util.Map<Descriptors.TypeRef,Clazz> |
importedClassesCache |
private Packages |
imports |
private boolean |
inited |
private static org.slf4j.Logger |
logger |
protected AnalyzerMessages |
msgs |
(package private) static java.util.regex.Pattern |
nummeric |
(package private) static java.util.regex.Pattern |
OBJECT_REFERENCE |
(package private) static java.util.regex.Pattern |
OLD_PACKAGEINFO_SYNTAX_P |
private java.util.Set<Descriptors.PackageRef> |
packagesVisited |
private Packages |
referred |
private MultiMap<Descriptors.PackageRef,Descriptors.PackageRef> |
uses |
_fileuri, _uri, basicPlugins, BUFFER_SIZE, current, errors, exceptions, fileMustExist, filter, fixupMessages, included, LIST_SPLITTER, locations, log, missingCommand, modified, PACKAGES_IGNORED, parent, pedantic, pluginLoader, profile, properties, random, strict, trace, upto, warnings
translation
AUGMENT, AUGMENT_CAPABILITY_DIRECTIVE, AUGMENT_RANGE_ATTRIBUTE, AUGMENT_REQUIREMENT_DIRECTIVE, BASELINE, BASELINEREPO, BLUEPRINT_TIMEOUT_ATTRIBUTE, BLUEPRINT_WAIT_FOR_DEPENDENCIES_ATTRIBUTE, BND_ADDXMLTOTEST, BND_LASTMODIFIED, BNDDRIVER, BNDDRIVER_ANT, BNDDRIVER_BND, BNDDRIVER_ECLIPSE, BNDDRIVER_GRADLE, BNDDRIVER_GRADLE_NATIVE, BNDDRIVER_INTELLIJ, BNDDRIVER_MAVEN, BNDDRIVER_OSMORC, BNDDRIVER_SBT, BUILDFILES, BUILDPACKAGES, BUILDPATH, BUILDREPO, BUMPPOLICY, BUNDLE_ACTIVATIONPOLICY, BUNDLE_ACTIVATOR, BUNDLE_BLUEPRINT, BUNDLE_CATEGORY, BUNDLE_CLASSPATH, BUNDLE_CONTACTADDRESS, BUNDLE_CONTRIBUTORS, BUNDLE_COPYRIGHT, BUNDLE_DESCRIPTION, BUNDLE_DEVELOPERS, BUNDLE_DOCURL, BUNDLE_ICON, BUNDLE_LICENSE, BUNDLE_LOCALIZATION, BUNDLE_MANIFESTVERSION, BUNDLE_NAME, BUNDLE_NATIVECODE, BUNDLE_REQUIREDEXECUTIONENVIRONMENT, BUNDLE_SCM, BUNDLE_SPECIFIC_HEADERS, BUNDLE_SYMBOLIC_NAME_ATTRIBUTE, BUNDLE_SYMBOLICNAME, BUNDLE_UPDATELOCATION, BUNDLE_VENDOR, BUNDLE_VERSION, BUNDLE_VERSION_ATTRIBUTE, CACHEDIR, CARDINALITY_DIRECTIVE, CHECK, CLASSPATH, COMMAND_DIRECTIVE, COMPILER_SOURCE, COMPILER_TARGET, COMPONENT_ACTIVATE, COMPONENT_CONFIGURATION_POLICY, COMPONENT_DEACTIVATE, COMPONENT_DESCRIPTORS, COMPONENT_DESIGNATE, COMPONENT_DESIGNATEFACTORY, COMPONENT_DYNAMIC, COMPONENT_ENABLED, COMPONENT_FACTORY, COMPONENT_GREEDY, COMPONENT_IMMEDIATE, COMPONENT_IMPLEMENTATION, COMPONENT_MODIFIED, COMPONENT_MULTIPLE, COMPONENT_NAME, COMPONENT_NAMESPACE, COMPONENT_OPTIONAL, COMPONENT_PROPERTIES, COMPONENT_PROVIDE, COMPONENT_SERVICEFACTORY, COMPONENT_VERSION, componentDirectives, CONDITIONAL_PACKAGE, CONDITIONALPACKAGE, CONDUIT, CONNECTION_SETTINGS, CONSUMER_POLICY, CONTRACT, CREATED_BY, CURRENT_PACKAGE, CURRENT_USES, CURRENT_VERSION, DEBUG, DEFAULT_BAR_EXTENSION, DEFAULT_BND_EXTENSION, DEFAULT_BNDRUN_EXTENSION, DEFAULT_CHARSET, DEFAULT_DO_NOT_COPY, DEFAULT_JAR_EXTENSION, DEFAULT_LAUNCHER_BSN, DEFAULT_PREPROCESSS_MATCHERS, DEFAULT_PROP_BIN_DIR, DEFAULT_PROP_SRC_DIR, DEFAULT_PROP_TARGET_DIR, DEFAULT_PROP_TESTBIN_DIR, DEFAULT_PROP_TESTSRC_DIR, DEFAULT_TESTER_BSN, DEPENDSON, DEPLOY, DEPLOYREPO, DESCRIPTION_ATTRIBUTE, DIFFIGNORE, DIFFPACKAGES, DIGESTS, directives, DISTRO, DONOTCOPY, DSANNOTATIONS, DSANNOTATIONS_OPTIONS, DUPLICATE_MARKER, DYNAMICIMPORT_PACKAGE, EEPROFILE, EEPROFILE_AUTO_ATTRIBUTE, EFFECTIVE_DIRECTIVE, EMBEDDED_REPO, EMPTY, EMPTY_HEADER, EXCLUDE_DIRECTIVE, EXPERIMENTS, EXPORT, EXPORT_CONTENTS, EXPORT_PACKAGE, EXPORT_SERVICE, EXPORTTYPE, EXTENSION, EXTENSION_DIRECTIVE, FAIL_OK, FILTER_DIRECTIVE, FIXUPMESSAGES, FIXUPMESSAGES_IS_DIRECTIVE, FIXUPMESSAGES_IS_ERROR, FIXUPMESSAGES_IS_IGNORE, FIXUPMESSAGES_IS_WARNING, FIXUPMESSAGES_REPLACE_DIRECTIVE, FIXUPMESSAGES_RESTRICT_DIRECTIVE, FRAGMENT_ATTACHMENT_DIRECTIVE, FRAGMENT_HOST, FROM_DIRECTIVE, GESTALT, GESTALT_BATCH, GESTALT_CI, GESTALT_INTERACTIVE, GESTALT_OFFLINE, GESTALT_SHELL, GROUPID, headers, IGNORE_PACKAGE, IGNORE_STANDALONE, IMPORT_DIRECTIVE, IMPORT_PACKAGE, IMPORT_PRIVATE, IMPORT_REFERENCE, IMPORT_SERVICE, importDirectives, INCLUDE, INCLUDE_DIRECTIVE, INCLUDE_RESOURCE, INCLUDERESOURCE, INIT, INTERNAL_EXPORTED_DIRECTIVE, INTERNAL_SOURCE_DIRECTIVE, INVALIDFILENAMES, JAVA, JAVA_DEBUG, JAVAAGENT, JAVAC, JAVAC_PROFILE, JAVAC_SOURCE, JAVAC_TARGET, JIDENTIFIER, KEYSTORE_LOCATION_DIRECTIVE, KEYSTORE_PASSWORD_DIRECTIVE, KEYSTORE_PROVIDER_DIRECTIVE, LANGUAGE_ATTRIBUTE, LAUNCHER_PLUGIN, LIB_DIRECTIVE, LINK_ATTRIBUTE, LITERAL_ATTRIBUTE, MAKE, MANDATORY_DIRECTIVE, MANIFEST, MANIFEST_NAME, MAVEN_RELEASE, META_PERSISTENCE, METAPACKAGES, METATYPE, METATYPE_ANNOTATIONS, METATYPE_ANNOTATIONS_OPTIONS, NAME_ATTRIBUTE, NAMESECTION, NAMESPACE_STEM, NO_IMPORT_DIRECTIVE, NOANNOTATIONS, NOBUILDINCACHE, NOBUNDLES, NODEFAULTVERSION, NOEE, NOEXTRAHEADERS, NOJUNIT, NOJUNITOSGI, NOMANIFEST, NONE, NOUSES, OPTIONAL, options, OSNAME_ATTRIBUTE, OSVERSION_ATTRIBUTE, OUTPUT, OUTPUTMASK, PACKAGE, PACKAGE_JPM, PACKAGEINFOTYPE, PATH_DIRECTIVE, PEDANTIC, PLUGIN, PLUGINPATH, PLUGINPATH_SHA1_ATTR, PLUGINPATH_URL_ATTR, POM, PREPROCESSMATCHERS, PRESENCE_DIRECTIVE, PRIVATE_DIRECTIVE, PRIVATE_PACKAGE, PRIVATEPACKAGE, PROCESSOR_ATTRIBUTE, PROFILE, PROVIDE_CAPABILITY, PROVIDE_DIRECTIVE, PROVIDER_POLICY, PROVIDER_TYPE_DIRECTIVE, RELEASEREPO, REMOVE_ATTRIBUTE_DIRECTIVE, REMOVEHEADERS, REPORTNEWER, REPOSITORIES, REQUIRE_BND, REQUIRE_BUNDLE, REQUIRE_CAPABILITY, RESOLUTION, RESOLUTION_DIRECTIVE, RESOLUTION_DYNAMIC, RESOLVE, RESOURCEONLY, RUNBLACKLIST, RUNBUILDS, RUNBUNDLES, RUNEE, RUNENV, RUNFRAMEWORK, RUNFRAMEWORK_NONE, RUNFRAMEWORK_SERVICES, RUNFW, RUNJDB, RUNKEEP, RUNNOREFERENCES, RUNPATH, RUNPATH_LAUNCHER_DIRECTIVE, RUNPATH_MAIN_DIRECTIVE, RUNPROGRAMARGS, RUNPROPERTIES, RUNPROVIDEDCAPABILITIES, RUNREMOTE, RUNREPOS, RUNREQUIRE, RUNREQUIRES, RUNSTORAGE, RUNSYSTEMCAPABILITIES, RUNSYSTEMPACKAGES, RUNTIMEOUT, RUNTRACE, RUNVM, SAVEMANIFEST, SELECTION_FILTER_ATTRIBUTE, SERVICE_COMPONENT, SET_COMPONENT_DIRECTIVES, SET_COMPONENT_DIRECTIVES_1_1, SET_COMPONENT_DIRECTIVES_1_2, SIGN, SIGN_PASSWORD_DIRECTIVE, SIGNATURE_TEST, SINGLETON_DIRECTIVE, SIZE_ATTRIBUTE, SNAPSHOT, SOURCEPATH, SOURCES, SPECIFICATION_VERSION, SPLIT_PACKAGE_DIRECTIVE, STANDALONE, STRICT, SUB, SYSTEMPROPERTIES, TESTCASES, TESTCONTINUOUS, TESTER, TESTER_PLUGIN, TESTPACKAGES, TESTPATH, TESTREPORT, TESTSOURCES, TESTSUITES, TESTUNRESOLVED, TOOL, TSTAMP, UNDERTEST, UPTO, USES_DIRECTIVE, USES_USES, VALID_PROPERTY_TYPES, VERBOSE, VERSION_ATTR_HASH, VERSION_ATTR_LATEST, VERSION_ATTR_PROJECT, VERSION_ATTR_SNAPSHOT, VERSION_ATTRIBUTE, VERSION_FILTER, VISIBILITY_DIRECTIVE, WAB, WABLIB, WORKINGSET, WORKINGSET_MEMBER
Constructor and Description |
---|
Analyzer() |
Analyzer(Jar jar) |
Analyzer(Processor parent) |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
_bsn(java.lang.String[] args) |
java.lang.String |
_classes(java.lang.String... args) |
java.lang.String |
_ee(java.lang.String[] args) |
java.lang.String |
_exporters(java.lang.String[] args)
Get the exporter of a package ...
|
java.lang.String |
_exports(java.lang.String[] args) |
java.lang.String |
_findname(java.lang.String[] args) |
java.lang.String |
_findpath(java.lang.String[] args)
Findpath looks through the contents of the JAR and finds paths that end
with the given regular expression ${findpath (; reg-expr (; replacement)?
)? }
|
java.lang.String |
_imports(java.lang.String[] args) |
java.lang.String |
_md5(java.lang.String[] args) |
java.lang.String |
_packageattribute(java.lang.String[] args)
Return an attribute of a package
|
java.lang.String |
_packages(java.lang.String... args) |
java.lang.String |
_sha1(java.lang.String[] args) |
void |
addClasspath(java.util.Collection<?> jars) |
void |
addClasspath(java.io.File cp) |
void |
addClasspath(Jar jar) |
void |
analyze()
Calculates the data structures for generating a manifest.
|
private void |
analyzeBundleClasspath() |
private boolean |
analyzeJar(Jar jar,
java.lang.String prefix,
boolean okToIncludeDirs)
We traverse through all the classes that we can find and calculate the
contained and referred set and uses.
|
(package private) java.lang.String |
applyVersionPolicy(java.lang.String exportVersion,
java.lang.String importRange,
boolean provider) |
boolean |
assignable(Clazz annoServiceClazz,
Clazz inferredServiceClazz) |
boolean |
assignable(java.lang.String annoService,
java.lang.String inferredService) |
(package private) void |
augmentExports(Packages exports)
Provide any macro substitutions and versions for exported packages.
|
(package private) void |
augmentImports(Packages imports,
Packages exports)
Find some more information about imports in manifest and other places.
|
protected void |
begin() |
java.util.jar.Manifest |
calcManifest()
One of the main workhorses of this class.
|
java.lang.String |
calculateExportsFromContents(Jar bundle)
Calculate an export header solely based on the contents of a JAR file
|
(package private) java.lang.String |
calculateVersionRange(java.lang.String version,
boolean impl)
Calculate a version from a version policy.
|
boolean |
check(Analyzer.Check key)
Check if we have an a check option
|
(package private) static void |
cleanupModifier(java.lang.StringBuilder result,
java.lang.String modifier) |
java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> |
cleanupUses(java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> apiUses,
boolean removeJava)
Remove the own references and optional java references from the uses lib
|
static java.lang.String |
cleanupVersion(java.lang.String version) |
void |
clear() |
void |
close() |
(package private) Pair<Packages,Parameters> |
divideRegularAndDynamicImports() |
private void |
doConditionalPackages() |
private java.lang.String |
doEEProfiles(Clazz.JAVA highest)
Added for 1.8 profiles.
|
(package private) Packages |
doExportsToImports(Packages exports)
We will add all exports to the imports unless there is a -noimport
directive specified on an export.
|
private void |
doHeader(java.util.jar.Attributes main,
java.lang.String header) |
private void |
doNamesection(Jar dot,
java.util.jar.Manifest manifest)
Parse the namesection as instructions and then match them against the
current set of resources For example:
|
(package private) void |
doNameSection(java.util.jar.Manifest manifest,
java.lang.String header)
This method is called when the header starts with a @, signifying a name
section header.
|
(package private) void |
doPlugins() |
protected void |
doRequireBnd()
Ensure that we are running on the correct bnd.
|
protected void |
doUses(Descriptors.PackageRef packageRef,
Packages exports,
java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> uses,
Packages imports) |
(package private) void |
doUses(Packages exports,
java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> uses,
Packages imports)
Add the uses clauses.
|
private <T> java.util.Collection<T> |
filter(java.util.Collection<T> list,
java.lang.String[] args) |
(package private) Packages |
filter(Instructions instructions,
Packages source,
java.util.Set<Instruction> nomatch)
Merge the attributes of two maps, where the first map can contain
wildcarded names.
|
Clazz |
findClass(Descriptors.TypeRef typeRef)
Find a clazz on the class path.
|
(package private) java.lang.String |
findPath(java.lang.String name,
java.lang.String[] args,
boolean fullPathName) |
(package private) java.util.Set<Descriptors.PackageRef> |
findProvidedPackages()
Find the packages we depend on, where we implement an interface that is a
Provider Type.
|
Resource |
findResource(java.lang.String path)
Locate a resource on the class path.
|
(package private) void |
fixupAttributes(Descriptors.PackageRef packageRef,
Attrs attributes)
Fixup Attributes Execute any macros on an export and
|
private void |
fixupOldStyleVersions(Attrs attrs) |
void |
forceRefresh() |
java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> |
getAPIUses() |
java.lang.String |
getBndInfo(java.lang.String key,
java.lang.String defaultValue) |
long |
getBndLastModified() |
java.lang.String |
getBndVersion()
Get the version for this bnd
|
java.lang.String |
getBsn()
Clear the key part of a header.
|
java.util.Collection<Clazz> |
getClasses(java.lang.String... args) |
java.util.List<Jar> |
getClasspath() |
Packages |
getClasspathExports() |
java.util.Map<Descriptors.TypeRef,Clazz> |
getClassspace() |
java.util.Set<Clazz> |
getClassspace(Descriptors.PackageRef source)
Return the classes for a given source package.
|
Packages |
getContained() |
Descriptors.Descriptor |
getDescriptor(java.lang.String descriptor) |
java.util.SortedSet<Clazz.JAVA> |
getEEs()
Return the EEs
|
Packages |
getExports() |
protected Jar |
getExtra() |
Clazz.JAVA |
getHighestEE() |
Packages |
getImports() |
Jar |
getJar() |
Jar |
getJarFromName(java.lang.String name,
java.lang.String from)
Try to get a Jar from a file name/path or a url, or in last resort from
the classpath name part of their files.
|
java.util.List<Jar> |
getJarsFromName(java.lang.String name,
java.lang.String from) |
Clazz.JAVA |
getLowestEE() |
static java.util.Properties |
getManifest(java.io.File dirOrJar)
Specifically for Maven
|
private void |
getManifestInfoFromClasspath(Jar jar,
Packages classpathExports,
Contracts contracts) |
protected java.lang.String |
getName(Jar jar) |
java.io.File |
getOutputFile(java.lang.String output)
Calculate the output file for the given target.
|
Descriptors.PackageRef |
getPackageRef(java.lang.String binaryName) |
java.util.Collection<Descriptors.PackageRef> |
getPackages(Packages scope,
java.lang.String... args) |
java.util.Set<Descriptors.PackageRef> |
getPrivates() |
Packages |
getReferred() |
java.lang.String |
getSourceFileFor(Descriptors.TypeRef type)
Find the source file for this type
|
java.lang.String |
getSourceFileFor(Descriptors.TypeRef type,
java.util.Collection<java.io.File> sourcePath) |
Jar |
getTarget() |
Descriptors.TypeRef |
getTypeRef(java.lang.String binaryClassName) |
Descriptors.TypeRef |
getTypeRefFromFQN(java.lang.String fqn) |
Descriptors.TypeRef |
getTypeRefFromPath(java.lang.String path) |
java.util.Set<Descriptors.PackageRef> |
getUnreachable()
Return the set of unreachable code depending on exports and the bundle
activator.
|
java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> |
getUses() |
java.lang.String |
getVersion()
Answer the bundle version.
|
java.lang.String |
getVersionPolicy(boolean implemented) |
java.util.Map<Clazz.Def,java.util.List<Descriptors.TypeRef>> |
getXRef(Descriptors.PackageRef source,
java.util.Collection<Descriptors.PackageRef> dest,
int sourceModifiers)
Create a cross reference from package source, to packages in dest
|
boolean |
isImported(Descriptors.PackageRef packageRef) |
private static boolean |
isInteger(java.lang.String minor)
TRhe cleanup version got confused when people used numeric dates like
201209091230120 as qualifiers.
|
boolean |
isNoBundle() |
private boolean |
isProvider(Descriptors.TypeRef t) |
(package private) boolean |
isResourceOnly() |
private void |
learnPackage(Jar jar,
java.lang.String prefix,
Descriptors.PackageRef packageRef,
Packages map) |
private void |
merge(java.util.jar.Manifest result,
java.util.jar.Manifest old) |
void |
mergeManifest(java.util.jar.Manifest manifest)
Merge the existing manifest with the instructions but do not override
existing properties.
|
(package private) Attrs |
parsePackageinfo(Descriptors.PackageRef packageRef,
Resource r) |
private Attrs |
parsePackageInfoClass(Resource r) |
void |
putAll(java.util.Map<java.lang.String,java.lang.String> additional,
boolean force) |
boolean |
referred(Descriptors.PackageRef packageName) |
void |
referTo(Descriptors.TypeRef ref) |
void |
referToByBinaryName(java.lang.String binaryClassName) |
(package private) void |
removeAttributes(Attrs attributes)
Remove the attributes mentioned in the REMOVE_ATTRIBUTE_DIRECTIVE.
|
(package private) void |
removeDynamicImports(Packages referredAndExported)
Discussed with BJ and decided to kill the .
|
private static java.lang.String |
removeLeadingZeroes(java.lang.String group) |
(package private) void |
removeTransitive(Descriptors.PackageRef name,
java.util.Set<Descriptors.PackageRef> unreachable)
Transitively remove all elemens from unreachable through the uses link.
|
void |
report(java.util.Map<java.lang.String,java.lang.Object> table)
Report the details of this analyzer
|
boolean |
save(java.io.File output,
boolean force)
Utility function to carefully save the file.
|
void |
setBase(java.io.File file) |
void |
setClasspath(java.util.Collection<?> classpath)
Set the classpath for this analyzer by file.
|
void |
setClasspath(java.io.File[] classpath) |
void |
setClasspath(Jar[] classpath) |
void |
setClasspath(java.lang.String[] classpath) |
void |
setDefaults(java.lang.String bsn,
Version version)
Set default import and export instructions if none are set
|
void |
setDiagnostics(boolean b) |
Jar |
setJar(java.io.File file)
Set the JAR file we are going to work in.
|
Jar |
setJar(Jar jar)
Set the JAR directly we are going to work on.
|
void |
setTypeLocation(Reporter.SetLocation location,
Descriptors.TypeRef type)
Set location information for a type.
|
java.lang.String |
validResourcePath(java.lang.String name,
java.lang.String reportIfWrong) |
private void |
verifyAttribute(java.lang.String path,
java.lang.String where,
java.lang.String key,
java.lang.String value)
Verify an attribute
|
(package private) void |
verifyManifestHeadersCase(java.util.Properties properties)
Bnd is case sensitive for the instructions so we better check people are
not using an invalid case.
|
_basedir, _fileuri, _findfile, _frange, _native_capability, _propertiesdir, _propertiesname, _random, _thisfile, _uri, addBasicPlugin, addClose, addExtensions, addIncluded, addProperties, addProperties, append, appendPath, beginHandleErrors, check, concat, customize, doAttrbutes, doIncludeFile, doIncludeFile, endHandleErrors, error, error, exception, exists, findHeader, findHeader, findHeader, formatArrays, get, get, getBase, getBaseURI, getClass, getDuration, getErrors, getExecutor, getFile, getFile, getFlattenedProperties, getFlattenedProperties, getHeader, getHeader, getHeader, getHeader, getIncluded, getInfo, getInfo, getLine, getLoader, getLocation, getLogger, getMacroDomains, getManifestAsProperties, getMergedParameters, getParent, getPlugin, getPlugins, getPlugins, getProperties, getPropertiesFile, getProperty, getProperty, getProperty, getPropertyKeys, getReplacer, getScheduledExecutor, getSettings, getTop, getUnprocessedProperty, getWarnings, is, isDuplicate, isExceptions, isFailOk, isMissingPlugin, isOk, isPedantic, isPerfect, isStrict, isTrace, isTrue, iterator, join, join, join, join, join, keySet, lastModified, loadPlugins, loadProperties, loadProperties0, makePrintable, merge, mergeLocalProperties, mergeProperties, mergeProperties, mergeProperties, mergeProperties, newHashMap, newList, newList, newMap, newMap, newSet, newSet, normalize, normalize, parseHeader, parseHeader, printClause, printClauses, printClauses, printExceptionSummary, printStackTrace, progress, progress, propertiesChanged, quote, read, refresh, removeBasicPlugin, removeClose, removeDuplicateMarker, replaceAll, replaceExtension, report, set, setExceptions, setFileMustExist, setForceLocal, setParent, setPedantic, setProperties, setProperties, setProperties, setProperties, setProperty, setTrace, setTypeSpecificPlugins, signal, since, split, split, split, toFullHeaderPattern, toString, trace, tree, unsetProperty, updateModified, use, warning
copyFrom, domain, domain, domain, domain, domain, getBundleActivator, getBundleCategory, getBundleClasspath, getBundleClassPath, getBundleContactAddress, getBundleCopyright, getBundleDescription, getBundleDocURL, getBundleName, getBundleNative, getBundleRequiredExecutionEnvironment, getBundleSymbolicName, getBundleVendor, getBundleVersion, getDynamicImportPackage, getExportContents, getExportPackage, getFragmentHost, getIcon, getImportPackage, getIncludeResource, getParameters, getParameters, getParameters, getParameters, getPrivatePackage, getProvideCapability, getRequireBundle, getRequireCapability, getRunblacklist, getRunee, isSources, setAugment, setBundleActivator, setBundleClasspath, setBundleRequiredExecutionEnvironment, setBundleSymbolicName, setBundleVersion, setBundleVersion, setConditionalPackage, setExportPackage, setFailOk, setImportPackage, setIncludeResource, setPrivatePackage, setRunblacklist, setRunee, setRunfw, setRunRequires, setSources, setTranslation, translate, translate
private static final org.slf4j.Logger logger
private final java.util.SortedSet<Clazz.JAVA> ees
static java.util.Properties bndInfo
private Jar dot
private final Packages contained
private final Packages referred
private Packages exports
private Packages imports
private Descriptors.TypeRef activator
private final MultiMap<Descriptors.PackageRef,Descriptors.PackageRef> uses
private final MultiMap<Descriptors.PackageRef,Descriptors.PackageRef> apiUses
private final Contracts contracts
private final Packages classpathExports
private final Descriptors descriptors
private final java.util.List<Jar> classpath
private final java.util.Map<Descriptors.TypeRef,Clazz> classspace
private final java.util.Map<Descriptors.TypeRef,Clazz> importedClassesCache
private boolean analyzed
private boolean diagnostics
private boolean inited
protected final AnalyzerMessages msgs
private AnnotationHeaders annotationHeaders
private java.util.Set<Descriptors.PackageRef> packagesVisited
private java.util.Set<Analyzer.Check> checks
static java.util.regex.Pattern OLD_PACKAGEINFO_SYNTAX_P
static java.util.regex.Pattern OBJECT_REFERENCE
static java.text.SimpleDateFormat df
boolean firstUse
static java.util.regex.Pattern fuzzyVersion
static java.util.regex.Pattern fuzzyVersionRange
static java.util.regex.Pattern fuzzyModifier
static java.util.regex.Pattern nummeric
static final java.lang.String DEFAULT_PROVIDER_POLICY
static final java.lang.String DEFAULT_CONSUMER_POLICY
static java.lang.String _classesHelp
static java.lang.String _packagesHelp
static java.lang.String _md5Help
static java.lang.String _sha1Help
public Analyzer(Jar jar) throws java.lang.Exception
java.lang.Exception
public Analyzer(Processor parent)
public Analyzer()
public static java.util.Properties getManifest(java.io.File dirOrJar) throws java.lang.Exception
java.lang.Exception
public void analyze() throws java.lang.Exception
java.io.IOException
java.lang.Exception
private void doConditionalPackages() throws java.lang.Exception
java.lang.Exception
private void learnPackage(Jar jar, java.lang.String prefix, Descriptors.PackageRef packageRef, Packages map) throws java.lang.Exception
java.lang.Exception
protected java.lang.String getName(Jar jar) throws java.lang.Exception
java.lang.Exception
Attrs parsePackageinfo(Descriptors.PackageRef packageRef, Resource r) throws java.lang.Exception
java.lang.Exception
private Attrs parsePackageInfoClass(Resource r) throws java.lang.Exception
java.lang.Exception
void removeDynamicImports(Packages referredAndExported)
referredAndExported
- protected Jar getExtra() throws java.lang.Exception
java.lang.Exception
void doPlugins()
boolean isResourceOnly()
true
if the -resourceonly
instruction is set,
false
otherwisepublic java.util.jar.Manifest calcManifest() throws java.lang.Exception
java.io.IOException
java.lang.Exception
private java.lang.String doEEProfiles(Clazz.JAVA highest) throws java.io.IOException
Constants.EEPROFILE
option. If it is set, it can be "auto" or it
can contain a list of profiles specified as name="a,b,c" values. If we
find a package outside the profiles, no profile is set. Otherwise the
highest found profile is added. This only works for java packages.java.io.IOException
private void doHeader(java.util.jar.Attributes main, java.lang.String header)
private void doNamesection(Jar dot, java.util.jar.Manifest manifest)
-namesection: *;baz=true, abc/def/bar/X.class=3The raw value of
Constants.NAMESECTION
is used but the values of
the attributes are replaced where @ is set to the resource name. This
allows macro to operate on the resourcevoid doNameSection(java.util.jar.Manifest manifest, java.lang.String header)
@org@osgi@service@event@Implementation-TitleThis will be the header Implementation-Title in the org/osgi/service/event named section.
manifest
- header
- public java.lang.String getBsn()
public java.lang.String _bsn(java.lang.String[] args)
public java.lang.String calculateExportsFromContents(Jar bundle)
bundle
- The jar file to analyzepublic Packages getContained()
public Packages getExports()
public Packages getImports()
public java.util.Set<Descriptors.PackageRef> getPrivates()
public Jar getJar()
public Packages getReferred()
public java.util.Set<Descriptors.PackageRef> getUnreachable()
public java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> getUses()
public java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> getAPIUses()
public Packages getClasspathExports()
public java.lang.String getBndVersion()
public long getBndLastModified()
public java.lang.String getBndInfo(java.lang.String key, java.lang.String defaultValue)
public void mergeManifest(java.util.jar.Manifest manifest) throws java.io.IOException
manifest
- The manifest to merge withjava.io.IOException
public void setClasspath(java.util.Collection<?> classpath) throws java.io.IOException
classpath
- java.io.IOException
public void setClasspath(java.io.File[] classpath) throws java.io.IOException
java.io.IOException
public void setClasspath(Jar[] classpath)
public void setClasspath(java.lang.String[] classpath)
public Jar setJar(java.io.File file) throws java.io.IOException
file
- java.io.IOException
public Jar getJarFromName(java.lang.String name, java.lang.String from)
getJarFromName
in class Processor
name
- URL or filename relative to the basefrom
- Message identifying the caller for errorspublic java.util.List<Jar> getJarsFromName(java.lang.String name, java.lang.String from)
private void merge(java.util.jar.Manifest result, java.util.jar.Manifest old)
manifests
- java.lang.Exception
void verifyManifestHeadersCase(java.util.Properties properties)
properties
- Properties to verify.Packages doExportsToImports(Packages exports)
public boolean referred(Descriptors.PackageRef packageName)
private void getManifestInfoFromClasspath(Jar jar, Packages classpathExports, Contracts contracts)
jar
- contracts
- contracted
- private void fixupOldStyleVersions(Attrs attrs)
void augmentImports(Packages imports, Packages exports) throws java.lang.Exception
java.lang.Exception
Pair<Packages,Parameters> divideRegularAndDynamicImports()
java.lang.String applyVersionPolicy(java.lang.String exportVersion, java.lang.String importRange, boolean provider)
java.util.Set<Descriptors.PackageRef> findProvidedPackages() throws java.lang.Exception
java.lang.Exception
private boolean isProvider(Descriptors.TypeRef t) throws java.lang.Exception
java.lang.Exception
void augmentExports(Packages exports) throws java.io.IOException
java.io.IOException
void fixupAttributes(Descriptors.PackageRef packageRef, Attrs attributes) throws java.io.IOException
java.io.IOException
void removeAttributes(Attrs attributes)
java.lang.String calculateVersionRange(java.lang.String version, boolean impl)
version
- The actual exported versionimpl
- true for implementations and false for clientsvoid doUses(Packages exports, java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> uses, Packages imports)
exports
- uses
- MojoExecutionException
protected void doUses(Descriptors.PackageRef packageRef, Packages exports, java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> uses, Packages imports)
packageRef
- exports
- uses
- imports
- void removeTransitive(Descriptors.PackageRef name, java.util.Set<Descriptors.PackageRef> unreachable)
name
- unreachable
- private void verifyAttribute(java.lang.String path, java.lang.String where, java.lang.String key, java.lang.String value) throws java.io.IOException
f
- where
- key
- propvalue
- java.io.IOException
public void close() throws java.io.IOException
public java.lang.String _findpath(java.lang.String[] args)
args
- public java.lang.String _findname(java.lang.String[] args)
java.lang.String findPath(java.lang.String name, java.lang.String[] args, boolean fullPathName)
public void putAll(java.util.Map<java.lang.String,java.lang.String> additional, boolean force)
public java.util.List<Jar> getClasspath()
public void addClasspath(Jar jar)
public void addClasspath(java.util.Collection<?> jars) throws java.io.IOException
java.io.IOException
public void addClasspath(java.io.File cp) throws java.io.IOException
java.io.IOException
public void forceRefresh()
forceRefresh
in class Processor
public Jar getTarget()
private void analyzeBundleClasspath() throws java.lang.Exception
java.lang.Exception
private boolean analyzeJar(Jar jar, java.lang.String prefix, boolean okToIncludeDirs) throws java.lang.Exception
jar
- contained
- referred
- uses
- java.io.IOException
java.lang.Exception
public static java.lang.String cleanupVersion(java.lang.String version)
private static boolean isInteger(java.lang.String minor)
maxint = 2,147,483,647 = 10 digits
integer
- private static java.lang.String removeLeadingZeroes(java.lang.String group)
static void cleanupModifier(java.lang.StringBuilder result, java.lang.String modifier)
public java.lang.String getVersionPolicy(boolean implemented)
public java.lang.String _classes(java.lang.String... args) throws java.lang.Exception
java.lang.Exception
public java.util.Collection<Clazz> getClasses(java.lang.String... args) throws java.lang.Exception
java.lang.Exception
public java.lang.String _packages(java.lang.String... args) throws java.lang.Exception
java.lang.Exception
public java.util.Collection<Descriptors.PackageRef> getPackages(Packages scope, java.lang.String... args) throws java.lang.Exception
java.lang.Exception
public java.lang.String _exporters(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception
public java.util.Map<Descriptors.TypeRef,Clazz> getClassspace()
public java.lang.String _packageattribute(java.lang.String[] args)
public Resource findResource(java.lang.String path)
path
- Path of the reosurcenull
public Clazz findClass(Descriptors.TypeRef typeRef) throws java.lang.Exception
java.lang.Exception
public java.lang.String getVersion()
public boolean isNoBundle()
public void referTo(Descriptors.TypeRef ref)
public void referToByBinaryName(java.lang.String binaryClassName)
protected void doRequireBnd()
public java.lang.String _md5(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception
public java.lang.String _sha1(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception
public Descriptors.Descriptor getDescriptor(java.lang.String descriptor)
public Descriptors.TypeRef getTypeRef(java.lang.String binaryClassName)
public Descriptors.PackageRef getPackageRef(java.lang.String binaryName)
public Descriptors.TypeRef getTypeRefFromFQN(java.lang.String fqn)
public Descriptors.TypeRef getTypeRefFromPath(java.lang.String path)
public boolean isImported(Descriptors.PackageRef packageRef)
Packages filter(Instructions instructions, Packages source, java.util.Set<Instruction> nomatch)
instructions
- the instructions with patterns.source
- the actual found packages, contains no duplicatespublic void setDiagnostics(boolean b)
public Clazz.JAVA getLowestEE()
public Clazz.JAVA getHighestEE()
public java.lang.String _ee(java.lang.String[] args)
public java.io.File getOutputFile(java.lang.String output)
parameter given if not null and not directory if directory, this will be the output directory based on bsn-version.jar name of the source file if exists Untitled-[n]
output
- may be null, otherwise a file path relative to basepublic boolean save(java.io.File output, boolean force) throws java.lang.Exception
output
- the output file, if null getOutputFile(String)
is
used.force
- if it needs to be overwrittenjava.lang.Exception
public void setDefaults(java.lang.String bsn, Version version)
public java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> cleanupUses(java.util.Map<Descriptors.PackageRef,java.util.List<Descriptors.PackageRef>> apiUses, boolean removeJava)
apiUses
- removeJava
- public java.util.Set<Clazz> getClassspace(Descriptors.PackageRef source)
source
- the source packagepublic java.util.Map<Clazz.Def,java.util.List<Descriptors.TypeRef>> getXRef(Descriptors.PackageRef source, java.util.Collection<Descriptors.PackageRef> dest, int sourceModifiers) throws java.lang.Exception
source
- dest
- sourceModifiers
- java.lang.Exception
public java.lang.String _exports(java.lang.String[] args)
public java.lang.String _imports(java.lang.String[] args)
private <T> java.util.Collection<T> filter(java.util.Collection<T> list, java.lang.String[] args)
public void report(java.util.Map<java.lang.String,java.lang.Object> table) throws java.lang.Exception
public java.util.SortedSet<Clazz.JAVA> getEEs()
public java.lang.String validResourcePath(java.lang.String name, java.lang.String reportIfWrong)
name
- public boolean check(Analyzer.Check key)
public java.lang.String getSourceFileFor(Descriptors.TypeRef type) throws java.lang.Exception
type
- java.lang.Exception
public java.lang.String getSourceFileFor(Descriptors.TypeRef type, java.util.Collection<java.io.File> sourcePath) throws java.lang.Exception
java.lang.Exception
public void setTypeLocation(Reporter.SetLocation location, Descriptors.TypeRef type) throws java.lang.Exception
java.lang.Exception
public boolean assignable(java.lang.String annoService, java.lang.String inferredService)