Modifier and Type | Class and Description |
---|---|
static class |
Analyzer.Check |
Processor.CL, Processor.FileLine
Reporter.SetLocation
Report.Location
Modifier and Type | Field and Description |
---|---|
protected AnalyzerMessages |
msgs |
LIST_SPLITTER, log
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 |
---|---|
String |
_bsn(String[] args) |
String |
_classes(String... args) |
String |
_ee(String[] args) |
String |
_exporters(String[] args)
Get the exporter of a package ...
|
String |
_exports(String[] args) |
String |
_findname(String[] args) |
String |
_findpath(String[] args)
Findpath looks through the contents of the JAR and finds paths that end
with the given regular expression ${findpath (; reg-expr (; replacement)?
)? }
|
String |
_imports(String[] args) |
String |
_md5(String[] args) |
String |
_packageattribute(String[] args)
Return an attribute of a package
|
String |
_packages(String... args) |
String |
_sha1(String[] args) |
void |
addClasspath(Collection<?> jars) |
void |
addClasspath(File cp) |
void |
addClasspath(Jar jar) |
void |
analyze()
Calculates the data structures for generating a manifest.
|
boolean |
assignable(Clazz annoServiceClazz,
Clazz inferredServiceClazz) |
boolean |
assignable(String annoService,
String inferredService) |
protected void |
begin() |
Manifest |
calcManifest()
One of the main workhorses of this class.
|
String |
calculateExportsFromContents(Jar bundle)
Calculate an export header solely based on the contents of a JAR file
|
boolean |
check(Analyzer.Check key)
Check if we have an a check option
|
Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> |
cleanupUses(Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> apiUses,
boolean removeJava)
Remove the own references and optional java references from the uses lib
|
static String |
cleanupVersion(String version) |
void |
clear() |
void |
close() |
protected void |
doRequireBnd()
Ensure that we are running on the correct bnd.
|
protected void |
doUses(Descriptors.PackageRef packageRef,
Packages exports,
Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> uses,
Packages imports) |
Clazz |
findClass(Descriptors.TypeRef typeRef)
Find a clazz on the class path.
|
Resource |
findResource(String path)
Locate a resource on the class path.
|
void |
forceRefresh() |
Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> |
getAPIUses() |
String |
getBndInfo(String key,
String defaultValue) |
long |
getBndLastModified() |
String |
getBndVersion()
Get the version for this bnd
|
String |
getBsn()
Clear the key part of a header.
|
Collection<Clazz> |
getClasses(String... args) |
List<Jar> |
getClasspath() |
Packages |
getClasspathExports() |
Map<Descriptors.TypeRef,Clazz> |
getClassspace() |
Set<Clazz> |
getClassspace(Descriptors.PackageRef source)
Return the classes for a given source package.
|
Packages |
getContained() |
Descriptors.Descriptor |
getDescriptor(String descriptor) |
SortedSet<Clazz.JAVA> |
getEEs()
Return the EEs
|
Packages |
getExports() |
protected Jar |
getExtra() |
Clazz.JAVA |
getHighestEE() |
Packages |
getImports() |
Jar |
getJar() |
Jar |
getJarFromName(String name,
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.
|
List<Jar> |
getJarsFromName(String name,
String from) |
Clazz.JAVA |
getLowestEE() |
static Properties |
getManifest(File dirOrJar)
Specifically for Maven
|
protected String |
getName(Jar jar) |
File |
getOutputFile(String output)
Calculate the output file for the given target.
|
Descriptors.PackageRef |
getPackageRef(String binaryName) |
Collection<Descriptors.PackageRef> |
getPackages(Packages scope,
String... args) |
Set<Descriptors.PackageRef> |
getPrivates() |
Packages |
getReferred() |
String |
getSourceFileFor(Descriptors.TypeRef type)
Find the source file for this type
|
String |
getSourceFileFor(Descriptors.TypeRef type,
Collection<File> sourcePath) |
Jar |
getTarget() |
Descriptors.TypeRef |
getTypeRef(String binaryClassName) |
Descriptors.TypeRef |
getTypeRefFromFQN(String fqn) |
Descriptors.TypeRef |
getTypeRefFromPath(String path) |
Set<Descriptors.PackageRef> |
getUnreachable()
Return the set of unreachable code depending on exports and the bundle
activator.
|
Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> |
getUses() |
String |
getVersion()
Answer the bundle version.
|
String |
getVersionPolicy(boolean implemented) |
Map<Clazz.Def,List<Descriptors.TypeRef>> |
getXRef(Descriptors.PackageRef source,
Collection<Descriptors.PackageRef> dest,
int sourceModifiers)
Create a cross reference from package source, to packages in dest
|
boolean |
isImported(Descriptors.PackageRef packageRef) |
boolean |
isNoBundle() |
void |
mergeManifest(Manifest manifest)
Merge the existing manifest with the instructions but do not override
existing properties.
|
void |
putAll(Map<String,String> additional,
boolean force) |
boolean |
referred(Descriptors.PackageRef packageName) |
void |
referTo(Descriptors.TypeRef ref) |
void |
referToByBinaryName(String binaryClassName) |
void |
report(Map<String,Object> table)
Report the details of this analyzer
|
boolean |
save(File output,
boolean force)
Utility function to carefully save the file.
|
void |
setBase(File file) |
void |
setClasspath(Collection<?> classpath)
Set the classpath for this analyzer by file.
|
void |
setClasspath(File[] classpath) |
void |
setClasspath(Jar[] classpath) |
void |
setClasspath(String[] classpath) |
void |
setDefaults(String bsn,
Version version)
Set default import and export instructions if none are set
|
void |
setDiagnostics(boolean b) |
Jar |
setJar(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.
|
String |
validResourcePath(String name,
String reportIfWrong) |
_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, isTrace, isTrue, iterator, join, join, join, join, join, keySet, lastModified, loadPlugins, loadProperties, 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, 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
protected final AnalyzerMessages msgs
public Analyzer(Processor parent)
public Analyzer()
public static Properties getManifest(File dirOrJar) throws Exception
Exception
public void analyze() throws Exception
IOException
Exception
public Manifest calcManifest() throws Exception
IOException
Exception
public String getBsn()
public String calculateExportsFromContents(Jar bundle)
bundle
- The jar file to analyzepublic Packages getContained()
public Packages getExports()
public Packages getImports()
public Set<Descriptors.PackageRef> getPrivates()
public Jar getJar()
public Packages getReferred()
public Set<Descriptors.PackageRef> getUnreachable()
public Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> getUses()
public Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> getAPIUses()
public Packages getClasspathExports()
public String getBndVersion()
public long getBndLastModified()
public void mergeManifest(Manifest manifest) throws IOException
manifest
- The manifest to merge withIOException
public void setClasspath(Collection<?> classpath) throws IOException
classpath
- IOException
public void setClasspath(File[] classpath) throws IOException
IOException
public void setClasspath(Jar[] classpath)
public void setClasspath(String[] classpath)
public Jar setJar(File file) throws IOException
file
- IOException
public Jar getJarFromName(String name, String from)
getJarFromName
in class Processor
name
- URL or filename relative to the basefrom
- Message identifying the caller for errorspublic boolean referred(Descriptors.PackageRef packageName)
protected void doUses(Descriptors.PackageRef packageRef, Packages exports, Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> uses, Packages imports)
packageRef
- exports
- uses
- imports
- public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class Processor
IOException
public String _findpath(String[] args)
args
- public void addClasspath(Jar jar)
public void addClasspath(Collection<?> jars) throws IOException
IOException
public void addClasspath(File cp) throws IOException
IOException
public void forceRefresh()
forceRefresh
in class Processor
public Jar getTarget()
public String getVersionPolicy(boolean implemented)
public Collection<Clazz> getClasses(String... args) throws Exception
Exception
public Collection<Descriptors.PackageRef> getPackages(Packages scope, String... args) throws Exception
Exception
public String _exporters(String[] args) throws Exception
Exception
public Map<Descriptors.TypeRef,Clazz> getClassspace()
public Resource findResource(String path)
path
- Path of the reosurcenull
public Clazz findClass(Descriptors.TypeRef typeRef) throws Exception
Exception
public String getVersion()
public boolean isNoBundle()
public void referTo(Descriptors.TypeRef ref)
public void referToByBinaryName(String binaryClassName)
protected void doRequireBnd()
public Descriptors.Descriptor getDescriptor(String descriptor)
public Descriptors.TypeRef getTypeRef(String binaryClassName)
public Descriptors.PackageRef getPackageRef(String binaryName)
public Descriptors.TypeRef getTypeRefFromFQN(String fqn)
public Descriptors.TypeRef getTypeRefFromPath(String path)
public boolean isImported(Descriptors.PackageRef packageRef)
public void setDiagnostics(boolean b)
public Clazz.JAVA getLowestEE()
public Clazz.JAVA getHighestEE()
public File getOutputFile(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(File output, boolean force) throws Exception
output
- the output file, if null getOutputFile(String)
is
used.force
- if it needs to be overwrittenException
public void setDefaults(String bsn, Version version)
public Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> cleanupUses(Map<Descriptors.PackageRef,List<Descriptors.PackageRef>> apiUses, boolean removeJava)
apiUses
- removeJava
- public Set<Clazz> getClassspace(Descriptors.PackageRef source)
source
- the source packagepublic Map<Clazz.Def,List<Descriptors.TypeRef>> getXRef(Descriptors.PackageRef source, Collection<Descriptors.PackageRef> dest, int sourceModifiers) throws Exception
source
- dest
- sourceModifiers
- Exception
public void report(Map<String,Object> table) throws Exception
public SortedSet<Clazz.JAVA> getEEs()
public String validResourcePath(String name, String reportIfWrong)
name
- public boolean check(Analyzer.Check key)
public String getSourceFileFor(Descriptors.TypeRef type) throws Exception
type
- Exception
public String getSourceFileFor(Descriptors.TypeRef type, Collection<File> sourcePath) throws Exception
Exception
public void setTypeLocation(Reporter.SetLocation location, Descriptors.TypeRef type) throws Exception
Exception
Copyright © 2021 aQute SARL. All rights reserved.