Package aQute.bnd.osgi
Class Builder
- java.lang.Object
-
- aQute.bnd.osgi.Domain
-
- aQute.bnd.osgi.Processor
-
- aQute.bnd.osgi.Analyzer
-
- aQute.bnd.osgi.Builder
-
- All Implemented Interfaces:
Constants,Registry,Report,Reporter,java.io.Closeable,java.lang.AutoCloseable,java.lang.Iterable<java.lang.String>
- Direct Known Subclasses:
JUnitFramework.BundleBuilder,ProjectBuilder
public class Builder extends Analyzer
Include-Resource: ( [name '=' ] file )+ Private-Package: package-decl ( ',' package-decl )* Export-Package: package-decl ( ',' package-decl )* Import-Package: package-decl ( ',' package-decl )* @version $Revision: 1.27 $
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class aQute.bnd.osgi.Analyzer
Analyzer.Check
-
Nested classes/interfaces inherited from class aQute.bnd.osgi.Processor
Processor.CL, Processor.FileLine, Processor.SetLocationImpl
-
Nested classes/interfaces inherited from interface aQute.service.reporter.Report
Report.Location
-
Nested classes/interfaces inherited from interface aQute.service.reporter.Reporter
Reporter.SetLocation
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static java.lang.String_githeadHelpprivate BuilderInstructionsbuildInstrsprivate java.util.Map<java.lang.Integer,java.lang.String>cachedSystemCalls(package private) static CDIAnnotationscdiAnnotationsprivate InstructionsdefaultPreProcessMatcherprivate DiffPluginImpldiffer(package private) static DSAnnotationsdsAnnotations(package private) booleanfirstUseprivate static java.lang.String[]fixedprivate static java.util.regex.PatternGITREF_P#388 Manifest header to get GIT head Get the head commit number.private static java.util.regex.PatternIR_PATTERNprivate static org.slf4j.Loggerloggerprivate Makemake(package private) static MakeBndmakeBnd(package private) static MakeCopymakeCopy(package private) static MetatypeAnnotationsmetatypeAnnotations(package private) static JPMSAnnotationsmoduleAnnotations(package private) static JPMSModuleInfoPluginmoduleInfoPlugin(package private) static ServiceComponentserviceComponentprivate java.util.List<java.io.File>sourcePath(package private) static SPIDescriptorGeneratorspiDescriptorGeneratorprivate static intSPLIT_DEFAULTprivate static intSPLIT_ERRORprivate static intSPLIT_FIRSTprivate static intSPLIT_MERGE_FIRSTprivate static intSPLIT_MERGE_LASTprivate Treetreeprivate java.util.regex.PatternxdoNotCopy-
Fields inherited from class aQute.bnd.osgi.Analyzer
_classesHelp, _md5Help, _packagesHelp, _sha1Help, bndInfo, DEFAULT_CONSUMER_POLICY, DEFAULT_PROVIDER_POLICY, fuzzyModifier, fuzzyVersion, fuzzyVersionRange, msgs, OBJECT_REFERENCE, OLD_PACKAGEINFO_SYNTAX_P
-
Fields inherited from class aQute.bnd.osgi.Processor
_frangeHelp, _uriHelp, basicPlugins, BUFFER_SIZE, current, errors, exceptions, fileMustExist, filter, fixupMessages, LIST_SPLITTER, locations, log, missingCommand, parent, pedantic, pluginLoader, profile, properties, random, strict, trace, upto, warnings
-
Fields inherited from class aQute.bnd.osgi.Domain
translation
-
Fields inherited from interface aQute.bnd.osgi.Constants
ACCESS_ATTRIBUTE, AUGMENT, AUGMENT_CAPABILITY_DIRECTIVE, AUGMENT_RANGE_ATTRIBUTE, AUGMENT_REQUIREMENT_DIRECTIVE, AUTOMATIC_MODULE_NAME, 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, BSN_SOURCE_SUFFIX, BUILDERIGNORE, 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, BUNDLEANNOTATIONS, CACHEDIR, CARDINALITY_DIRECTIVE, CDIANNOTATIONS, CHECK, CLASS_ATTRIBUTE, 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, COMPRESSION, CONDITIONAL_PACKAGE, CONDITIONALPACKAGE, CONDUIT, CONNECTION_SETTINGS, CONSUMER_POLICY, CONTRACT, CREATED_BY, CURRENT_BUNDLESYMBOLICNAME, CURRENT_BUNDLEVERSION, 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, DEFINE_CONTRACT, DEPENDSON, DEPLOY, DEPLOYREPO, DESCRIPTION_ATTRIBUTE, DIFFIGNORE, DIFFPACKAGES, DIGESTS, directives, DISTRO, DONOTCOPY, DSANNOTATIONS, DSANNOTATIONS_OPTIONS, DUPLICATE_MARKER, DYNAMICIMPORT_PACKAGE, EE_ATTRIBUTE, EEPROFILE, EEPROFILE_AUTO_ATTRIBUTE, EFFECTIVE_DIRECTIVE, EMBEDDED_REPO, EMPTY, EMPTY_HEADER, EXCLUDE_DIRECTIVE, EXECUTABLE, EXPERIMENTS, EXPORT, EXPORT_APIGUARDIAN, EXPORT_BSN, EXPORT_CONTENTS, EXPORT_NAME, EXPORT_PACKAGE, EXPORT_SERVICE, EXPORT_TYPE, EXPORT_VERSION, EXPORTS_ATTRIBUTE, 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, GENERATE, GESTALT, GESTALT_BATCH, GESTALT_CI, GESTALT_INTERACTIVE, GESTALT_OFFLINE, GESTALT_SHELL, GROUPID, headers, IDENTITY_INITIAL_RESOURCE, IDENTITY_SYSTEM_RESOURCE, IGNORE_ATTRIBUTE, IGNORE_PACKAGE, IGNORE_STANDALONE, IMPORT_DIRECTIVE, IMPORT_PACKAGE, IMPORT_PRIVATE, IMPORT_REFERENCE, IMPORT_SERVICE, importDirectives, INCLUDE, INCLUDE_DIRECTIVE, INCLUDE_RESOURCE, INCLUDEPACKAGE, INCLUDERESOURCE, INIT, INTERNAL_BUNDLESYMBOLICNAME_DIRECTIVE, INTERNAL_BUNDLEVERSION_DIRECTIVE, INTERNAL_EXPORT_TO_MODULES_DIRECTIVE, INTERNAL_EXPORTED_DIRECTIVE, INTERNAL_MODULE_VERSION_DIRECTIVE, INTERNAL_OPEN_TO_MODULES_DIRECTIVE, INTERNAL_SOURCE_DIRECTIVE, INVALIDFILENAMES, JAVA, JAVA_DEBUG, JAVAAGENT, JAVAC, JAVAC_ENCODING, JAVAC_PROFILE, JAVAC_SOURCE, JAVAC_TARGET, JIDENTIFIER, JPMS_MODULE_INFO, JPMS_MODULE_INFO_OPTIONS, KEYSTORE_LOCATION_DIRECTIVE, KEYSTORE_PASSWORD_DIRECTIVE, KEYSTORE_PROVIDER_DIRECTIVE, LANGUAGE_ATTRIBUTE, LAUNCH_ACTIVATION_EAGER, LAUNCH_ACTIVATORS, LAUNCH_RUNBUNDLES_ATTRS, LAUNCH_STARTLEVEL_DEFAULT, LAUNCH_TRACE, LAUNCHER_PLUGIN, LIB_DIRECTIVE, LINK_ATTRIBUTE, LITERAL_ATTRIBUTE, MAIN_CLASS, MAKE, MANDATORY_DIRECTIVE, MANIFEST, MANIFEST_NAME, MAVEN_DEPENDENCIES, MAVEN_RELEASE, MAVEN_SCOPE, META_PERSISTENCE, METAPACKAGES, METATYPE, METATYPE_ANNOTATIONS, METATYPE_ANNOTATIONS_OPTIONS, MIME_TYPE_BUNDLE, MIME_TYPE_JAR, MODULE_INFO_CLASS, MODULES_ATTRIBUTE, NAME_ATTRIBUTE, NAMESECTION, NAMESPACE_STEM, NO_IMPORT_DIRECTIVE, NOANNOTATIONS, NOBUILDINCACHE, NOBUNDLES, NOCLASSFORNAME, NODEFAULTVERSION, NOEE, NOEXTRAHEADERS, NOIMPORTJAVA, NOJUNIT, NOJUNITOSGI, NOMANIFEST, NONE, NOT_A_BUNDLE_S, NOUSES, OPTIONAL, options, OSGI_SYNTAX_HEADERS, OSNAME_ATTRIBUTE, OSVERSION_ATTRIBUTE, OUTPUT, OUTPUTMASK, PACKAGE, 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, REMOTEWORKSPACE, REMOVE_ATTRIBUTE_DIRECTIVE, REMOVEHEADERS, REPORTNEWER, REPOSITORIES, REPRODUCIBLE, REQUIRE_BND, REQUIRE_BUNDLE, REQUIRE_CAPABILITY, RESOLUTION, RESOLUTION_DIRECTIVE, RESOLUTION_DYNAMIC, RESOLVE, RESOURCEONLY, RUNBLACKLIST, RUNBUILDS, RUNBUNDLES, RUNBUNDLES_STARTLEVEL_ATTRIBUTE, RUNEE, RUNENV, RUNFRAMEWORK, RUNFRAMEWORK_NONE, RUNFRAMEWORK_SERVICES, RUNFRAMEWORKRESTART, RUNFW, RUNJDB, RUNKEEP, RUNNOREFERENCES, RUNOPTIONS, RUNOPTIONS_EAGER, RUNPATH, RUNPATH_LAUNCHER_DIRECTIVE, RUNPATH_MAIN_DIRECTIVE, RUNPROGRAMARGS, RUNPROPERTIES, RUNPROVIDEDCAPABILITIES, RUNREMOTE, RUNREPOS, RUNREQUIRE, RUNREQUIRES, RUNSTARTLEVEL, RUNSTARTLEVEL_BEGIN, RUNSTARTLEVEL_ORDER, RUNSTARTLEVEL_STEP, RUNSTORAGE, RUNSYSTEMCAPABILITIES, RUNSYSTEMPACKAGES, RUNTIMEOUT, RUNTRACE, RUNVM, SAVEMANIFEST, SELECTION_FILTER_ATTRIBUTE, SERVICE_COMPONENT, SERVICELOADER_NAMESPACE, SERVICELOADER_REGISTER_DIRECTIVE, 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, STALECHECK, STANDALONE, STATIC_ATTRIBUTE, STRICT, SUB, SUBSTITUTE_ATTRIBUTE, SYSTEMPROPERTIES, TESTCASES, TESTCONTINUOUS, TESTER, TESTER_PLUGIN, TESTPACKAGES, TESTPATH, TESTREPORT, TESTSOURCES, TESTSUITES, TESTUNRESOLVED, TOOL, TRANSITIVE_ATTRIBUTE, 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
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String_githead(java.lang.String[] args)java.lang.String_maven_version(java.lang.String[] args)A macro to convert a maven version to an OSGi versionjava.lang.String_permissions(java.lang.String[] args)booleanaddAll(Jar to, Jar sub, Instruction filter)Add all the resources in the given jar that match the given filter.booleanaddAll(Jar to, Jar sub, Instruction filter, java.lang.String destination)Add all the resources in the given jar that match the given filter.voidaddSourcepath(java.io.File cp)voidaddSourcepath(java.util.Collection<java.io.File> sourcepath)private voidaddSources(Jar dot)private voidaddWabLib(Jar dot, java.io.File f, java.lang.String name, java.util.Map<java.lang.String,java.lang.String> attrs)Add a wab lib to the jar.voidanalyze()Intercept the call to analyze and cleanup versions after we have analyzed the setup.Jarbuild()Jar[]builds()Build Multiple jars.protected voidchangedFile(java.io.File f)voidcleanupVersion(Packages packages, java.lang.String defaultVersion)voidcleanupVersion(Packages packages, java.lang.String defaultVersion, java.lang.String what)private voidcopy(Jar dest, Jar srce, java.lang.String path, boolean overwrite)Copyprivate voidcopy(Jar jar, java.lang.String path, Resource resource, java.util.Map<java.lang.String,java.lang.String> extra)private voidcopy(Jar jar, java.lang.String path, java.io.File from, Instructions preprocess, java.util.Map<java.lang.String,java.lang.String> extra)private voidcopyPackage(Jar dest, java.util.List<Jar> providers, java.lang.String path, int splitStrategy)Copy the package from the providers based on the split package strategy.private java.lang.Stringdiagnostic(java.lang.String pack, java.util.List<Jar> culprits)Analyze the classpath for a split packageprotected voiddoBaseline(Jar dot)Base line against a previous version.private voiddoClassAttribute(Jar jar, java.lang.String name, java.util.Map<java.lang.String,java.lang.String> extra, Instructions preprocess, boolean absentIsOk)private voiddoCommand(Jar jar, java.lang.String source, java.lang.String destination, java.util.Map<java.lang.String,java.lang.String> extra, Instructions preprocess, boolean absentIsOk)It is possible in Include-Resource to use a system command that generates the contents, this is indicated withcmdattribute.voiddoDiff(Jar dot)Diff this bundle to another bundle for the given packages.private voiddoDigests(Jar dot)Check if we need to calculate any checksums.private voiddoExpand(Jar dot)private java.util.Set<Instruction>doExpand(Jar jar, MultiMap<java.lang.String,Jar> index, Instructions filter)Destructively filter the packages from the build up index.private voiddoIncludeResource(Jar jar, Parameters clauses)private voiddoIncludeResource(Jar jar, java.lang.String includes)private voiddoIncludeResource(Jar jar, java.lang.String name, java.util.Map<java.lang.String,java.lang.String> extra)private voiddoIncludeResources(Jar jar)Parse the Bundle-Includes header.protected voiddoneBuild(Builder builder)Called when we're done with a builderbooleandoNotCopy(java.io.File from)booleandoNotCopy(java.lang.String v)doNotCopy The doNotCopy variable maintains a patter for files that should not be copied.(package private) voiddoPom(Jar dot)private java.lang.StringdoResourceDirectory(Jar jar, java.util.Map<java.lang.String,java.lang.String> extra, Instructions preprocess, java.io.File sourceFile, java.lang.String destinationPath)private voiddoSaveManifest(Jar dot)Get the manifest and write it out separately if -savemanifest is setprivate java.lang.StringdoSnapshot(java.lang.String version)private voiddoVerify(Jar dot)private JardoWab(Jar dot)Turn this normal bundle in a web and add any resources.private voidextractFromJar(Jar jar, java.lang.String source, java.lang.String destination, boolean absentIsOk)Extra resources from a Jar and add them to the given jar.private java.util.List<Jar>filterFrom(Instruction from, java.util.List<Jar> providers)private longfindLastModifiedWhileOlder(java.io.File file, long lastModified)Check if a file or directory is older than the given time.Builderfrom(BuilderSpecification spec)Collect the information from theBuilderSpecificationprivate JargetBuildJar()java.lang.StringgetClasspathEntrySuffix(java.io.File resource)Answer the string of the resource that it has in the container.java.util.regex.PatterngetDoNotCopy()protected JargetExtra()Answer extra packages.private java.util.stream.Stream<java.lang.String>getIncludedResourcePrefixes()Extra the paths for the directories and files that are used in the Include-Resource header.private InstructionsgetPreProcessMatcher(java.util.Map<java.lang.String,java.lang.String> extra)java.util.Collection<java.io.File>getSourcePath()private intgetSplitStrategy(java.lang.String type)BuildergetSubBuilder()BuildergetSubBuilder(java.io.File file)java.util.List<Builder>getSubBuilders()Answer a list of builders that represent this file or a list of files specified in -sub.booleanhasSources()voidinit()Allow any local initialization by subclasses before we build.booleanisInScope(java.util.Collection<java.io.File> resources)Check if the given resource is in scope of this bundle.private Instructionmatches(Instructions instructions, java.lang.String pack, java.util.Set<Instruction> unused, java.lang.String source)Matches the instructions against a package.private voidnoSuchFile(Jar jar, java.lang.String clause, java.util.Map<java.lang.String,java.lang.String> extra, java.lang.String source, java.lang.String destinationPath)private static booleanpathStartsWith(java.lang.String path, java.lang.String prefix)voidremoveBundleSpecificHeaders()voidreport(java.util.Map<java.lang.String,java.lang.Object> table)Create a report of the settingsprivate voidresolveFiles(java.io.File dir, java.io.FileFilter filter, boolean recursive, java.lang.String path, java.util.Map<java.lang.String,java.io.File> files, boolean flatten)voidsetSourcepath(java.io.File[] files)protected voidsetTypeSpecificPlugins(java.util.Set<java.lang.Object> list)private voidshow(Diff p, java.lang.String indent, boolean warning)Show the diff recursively(package private) voidsign(Jar jar)Sign the jar file.protected voidstartBuild(Builder builder)Called when we start to build a builderjava.lang.Stringsystem(boolean allowFail, java.lang.String command, java.lang.String input)We override system so that, for the duration of a build operation, we may cache the result of a given system call.private voidtraverse(java.util.List<java.lang.String> paths, java.io.File item)-
Methods inherited from class aQute.bnd.osgi.Analyzer
_bsn, _classes, _ee, _exporters, _exports, _findname, _findpath, _imports, _md5, _packageattribute, _packages, _sha1, addClasspath, addClasspath, addClasspath, applyVersionPolicy, assignable, assignable, assignable, assignable, augmentExports, augmentImports, begin, calcManifest, calculateExportsFromContents, calculateVersionRange, check, cleanupModifier, cleanupUses, cleanupVersion, clear, close, divideRegularAndDynamicImports, doExportsToImports, doNameSection, doPlugins, doRequireBnd, doUses, doUses, filter, findClass, findClasspathEntry, findPath, findProvidedPackages, findResource, findResources, fixupAttributes, forceRefresh, getAPIUses, getBndInfo, getBndLastModified, getBndVersion, getBsn, getBundleClassPathEntry, getClasses, getClasspath, getClasspathExports, getClassSignature, getClassspace, getClassspace, getContained, getDescriptor, getEEs, getExports, getFieldSignature, getHighestEE, getHostPackages, getImports, getJar, getJarFromName, getJarsFromName, getLowestEE, getManifest, getMethodSignature, getName, getOutputFile, getPackageInfo, getPackageRef, getPackages, getPrivates, getReferred, getRequireBundlePackages, getSourceFileFor, getSourceFileFor, getTarget, getTypeRef, getTypeRefFromFQN, getTypeRefFromPath, getUnreachable, getUses, getVersion, getVersionPolicy, getXRef, isImported, isNoBundle, isResourceOnly, mergeManifest, nonClassReferTo, parsePackageinfo, putAll, referred, referTo, referToByBinaryName, removeAttributes, removeDynamicImports, removeTransitive, save, setBase, setClasspath, setClasspath, setClasspath, setClasspath, setDefaults, setDiagnostics, setJar, setJar, setTypeLocation, validResourcePath, verifyManifestHeadersCase
-
Methods inherited from class aQute.bnd.osgi.Processor
_basedir, _fileuri, _findfile, _frange, _native_capability, _propertiesdir, _propertiesname, _random, _thisfile, _uri, addBasicPlugin, addClose, addExtensions, addIncluded, addProperties, addProperties, append, appendPath, beginHandleErrors, check, concat, customize, decorated, decorated, doAttrbutes, doIncludeFile, doIncludeFile, endHandleErrors, error, error, exception, exists, findHeader, findHeader, findHeader, formatArrays, get, get, getBase, getBaseURI, getChecksum, getClass, getDuration, getErrors, getExecutor, getFile, getFile, getFlattenedProperties, getFlattenedProperties, getHeader, getHeader, getHeader, getHeader, getIncluded, getInfo, getInfo, getInstructions, getJavaExecutable, getLine, getLoader, getLocation, getLogger, getMacroDomains, getManifestAsProperties, getMergedParameters, getParameters, getParent, getPlugin, getPlugins, getPlugins, getProfile, getPromiseFactory, getProperties, getPropertiesFile, getProperty, getProperty, getProperty, getPropertyKeys, getReplacer, getScheduledExecutor, getSelfAndAncestors, getSettings, getTop, getUnexpandedProperty, getUnprocessedProperty, getWarnings, is, isDuplicate, isExceptions, isFailOk, isInteractive, isMissingPlugin, isOk, isPedantic, isPerfect, isStrict, isTrace, isTrue, iterator, join, 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, setLocation, setParent, setPedantic, setProperties, setProperties, setProperties, setProperties, setProperty, setTrace, signal, since, split, split, split, spliterator, stream, system, toFullHeaderPattern, toString, trace, tree, unsetProperty, updateModified, use, warning
-
Methods inherited from class aQute.bnd.osgi.Domain
copyFrom, domain, domain, 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, normalizeKey, setAugment, setBundleActivator, setBundleClasspath, setBundleRequiredExecutionEnvironment, setBundleSymbolicName, setBundleVersion, setBundleVersion, setConditionalPackage, setExportContents, setExportPackage, setFailOk, setImportPackage, setIncludePackage, setIncludeResource, setPrivatePackage, setRunblacklist, setRunee, setRunfw, setRunRequires, setSources, setTranslation, translate, translate
-
-
-
-
Field Detail
-
logger
private static final org.slf4j.Logger logger
-
IR_PATTERN
private static final java.util.regex.Pattern IR_PATTERN
-
differ
private final DiffPluginImpl differ
-
xdoNotCopy
private java.util.regex.Pattern xdoNotCopy
-
SPLIT_MERGE_LAST
private static final int SPLIT_MERGE_LAST
- See Also:
- Constant Field Values
-
SPLIT_MERGE_FIRST
private static final int SPLIT_MERGE_FIRST
- See Also:
- Constant Field Values
-
SPLIT_ERROR
private static final int SPLIT_ERROR
- See Also:
- Constant Field Values
-
SPLIT_FIRST
private static final int SPLIT_FIRST
- See Also:
- Constant Field Values
-
SPLIT_DEFAULT
private static final int SPLIT_DEFAULT
- See Also:
- Constant Field Values
-
sourcePath
private final java.util.List<java.io.File> sourcePath
-
make
private final Make make
-
defaultPreProcessMatcher
private Instructions defaultPreProcessMatcher
-
buildInstrs
private BuilderInstructions buildInstrs
-
cachedSystemCalls
private final java.util.Map<java.lang.Integer,java.lang.String> cachedSystemCalls
-
fixed
private static final java.lang.String[] fixed
-
firstUse
boolean firstUse
-
tree
private Tree tree
-
makeBnd
static MakeBnd makeBnd
-
makeCopy
static MakeCopy makeCopy
-
serviceComponent
static ServiceComponent serviceComponent
-
cdiAnnotations
static CDIAnnotations cdiAnnotations
-
dsAnnotations
static DSAnnotations dsAnnotations
-
metatypeAnnotations
static MetatypeAnnotations metatypeAnnotations
-
moduleAnnotations
static JPMSAnnotations moduleAnnotations
-
moduleInfoPlugin
static JPMSModuleInfoPlugin moduleInfoPlugin
-
spiDescriptorGenerator
static SPIDescriptorGenerator spiDescriptorGenerator
-
GITREF_P
private static final java.util.regex.Pattern GITREF_P
#388 Manifest header to get GIT head Get the head commit number. Look for a .git/HEAD file, going up in the file hierarchy. Then get this file, and resolve any symbolic reference.
-
_githeadHelp
static final java.lang.String _githeadHelp
- See Also:
- Constant Field Values
-
-
Method Detail
-
build
public Jar build() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getBuildJar
private Jar getBuildJar()
-
doPom
void doPom(Jar dot) throws java.lang.Exception, java.io.IOException
- Throws:
java.lang.Exceptionjava.io.IOException
-
doDigests
private void doDigests(Jar dot) throws java.lang.Exception
Check if we need to calculate any checksums.- Parameters:
dot-- Throws:
java.lang.Exception
-
init
public void init() throws java.lang.ExceptionAllow any local initialization by subclasses before we build.- Throws:
java.lang.Exception
-
doWab
private Jar doWab(Jar dot) throws java.lang.Exception
Turn this normal bundle in a web and add any resources.- Throws:
java.lang.Exception
-
pathStartsWith
private static boolean pathStartsWith(java.lang.String path, java.lang.String prefix)
-
addWabLib
private void addWabLib(Jar dot, java.io.File f, java.lang.String name, java.util.Map<java.lang.String,java.lang.String> attrs) throws java.lang.Exception
Add a wab lib to the jar.- Parameters:
f-- Throws:
java.lang.Exception
-
doSaveManifest
private void doSaveManifest(Jar dot) throws java.lang.Exception
Get the manifest and write it out separately if -savemanifest is set- Parameters:
dot-- Throws:
java.lang.Exception
-
changedFile
protected void changedFile(java.io.File f)
-
sign
void sign(Jar jar) throws java.lang.Exception
Sign the jar file. -sign :[ ';' 'password:=' ] [ ';' 'keystore:=' ] [ ';' 'sign-password:=' ] ( ',' ... )* - Throws:
java.lang.Exception
-
hasSources
public boolean hasSources()
-
getExtra
protected Jar getExtra() throws java.lang.Exception
Answer extra packages. In this case we implement conditional package. Any
-
analyze
public void analyze() throws java.lang.ExceptionIntercept the call to analyze and cleanup versions after we have analyzed the setup. We do not want to cleanup if we are going to verify.
-
doSnapshot
private java.lang.String doSnapshot(java.lang.String version)
-
cleanupVersion
public void cleanupVersion(Packages packages, java.lang.String defaultVersion)
-
cleanupVersion
public void cleanupVersion(Packages packages, java.lang.String defaultVersion, java.lang.String what)
-
addSources
private void addSources(Jar dot) throws java.lang.Exception
- Throws:
java.io.IOExceptionjava.lang.Exception
-
getSourcePath
public java.util.Collection<java.io.File> getSourcePath()
-
doVerify
private void doVerify(Jar dot) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doExpand
private void doExpand(Jar dot) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doExpand
private java.util.Set<Instruction> doExpand(Jar jar, MultiMap<java.lang.String,Jar> index, Instructions filter) throws java.lang.Exception
Destructively filter the packages from the build up index. This index is used by the Export Package as well as the Private Package- Throws:
java.lang.Exception
-
filterFrom
private java.util.List<Jar> filterFrom(Instruction from, java.util.List<Jar> providers)
- Parameters:
from-
-
copyPackage
private void copyPackage(Jar dest, java.util.List<Jar> providers, java.lang.String path, int splitStrategy)
Copy the package from the providers based on the split package strategy.
-
diagnostic
private java.lang.String diagnostic(java.lang.String pack, java.util.List<Jar> culprits)Analyze the classpath for a split package
-
getSplitStrategy
private int getSplitStrategy(java.lang.String type)
-
matches
private Instruction matches(Instructions instructions, java.lang.String pack, java.util.Set<Instruction> unused, java.lang.String source)
Matches the instructions against a package.- Parameters:
instructions- The list of instructionspack- The name of the packageunused- The total list of patterns, matched patterns are removedsource- The name of the source container, can be filtered upon with the from: directive.
-
doIncludeResources
private void doIncludeResources(Jar jar) throws java.lang.Exception
Parse the Bundle-Includes header. Files in the bundles Include header are included in the jar. The source can be a directory or a file.- Throws:
java.io.IOExceptionjava.io.FileNotFoundExceptionjava.lang.Exception
-
doIncludeResource
private void doIncludeResource(Jar jar, java.lang.String includes) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doIncludeResource
private void doIncludeResource(Jar jar, Parameters clauses) throws java.util.zip.ZipException, java.io.IOException, java.lang.Exception
- Throws:
java.util.zip.ZipExceptionjava.io.IOExceptionjava.lang.Exception
-
doIncludeResource
private void doIncludeResource(Jar jar, java.lang.String name, java.util.Map<java.lang.String,java.lang.String> extra) throws java.util.zip.ZipException, java.io.IOException, java.lang.Exception
- Throws:
java.util.zip.ZipExceptionjava.io.IOExceptionjava.lang.Exception
-
doClassAttribute
private void doClassAttribute(Jar jar, java.lang.String name, java.util.Map<java.lang.String,java.lang.String> extra, Instructions preprocess, boolean absentIsOk) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getPreProcessMatcher
private Instructions getPreProcessMatcher(java.util.Map<java.lang.String,java.lang.String> extra)
-
doCommand
private void doCommand(Jar jar, java.lang.String source, java.lang.String destination, java.util.Map<java.lang.String,java.lang.String> extra, Instructions preprocess, boolean absentIsOk) throws java.lang.Exception
It is possible in Include-Resource to use a system command that generates the contents, this is indicated withcmdattribute. The command can be repeated for a number of source files with theforattribute which indicates a list of repetitions, often down with theMacro._lsa(String[])orMacro#_lsb(String[])macro. The repetition will repeat the given command for each item. The @} macro can be used to replace the current item. If noforis given, the source is used as the only item. If the destination contains a macro, each iteration will create a new file, otherwise the destination name is used.- Parameters:
jar-source-destination-extra-preprocess-absentIsOk-- Throws:
java.lang.Exception
-
traverse
private void traverse(java.util.List<java.lang.String> paths, java.io.File item)
-
findLastModifiedWhileOlder
private long findLastModifiedWhileOlder(java.io.File file, long lastModified)Check if a file or directory is older than the given time.- Parameters:
file-lastModified-
-
doResourceDirectory
private java.lang.String doResourceDirectory(Jar jar, java.util.Map<java.lang.String,java.lang.String> extra, Instructions preprocess, java.io.File sourceFile, java.lang.String destinationPath) throws java.lang.Exception
- Throws:
java.lang.Exception
-
resolveFiles
private void resolveFiles(java.io.File dir, java.io.FileFilter filter, boolean recursive, java.lang.String path, java.util.Map<java.lang.String,java.io.File> files, boolean flatten)
-
noSuchFile
private void noSuchFile(Jar jar, java.lang.String clause, java.util.Map<java.lang.String,java.lang.String> extra, java.lang.String source, java.lang.String destinationPath) throws java.lang.Exception
- Throws:
java.lang.Exception
-
extractFromJar
private void extractFromJar(Jar jar, java.lang.String source, java.lang.String destination, boolean absentIsOk) throws java.util.zip.ZipException, java.io.IOException
Extra resources from a Jar and add them to the given jar.- Throws:
java.util.zip.ZipExceptionjava.io.IOException
-
addAll
public boolean addAll(Jar to, Jar sub, Instruction filter)
Add all the resources in the given jar that match the given filter.- Parameters:
sub- the jarfilter- a pattern that should match the resoures in sub to be added
-
addAll
public boolean addAll(Jar to, Jar sub, Instruction filter, java.lang.String destination)
Add all the resources in the given jar that match the given filter.- Parameters:
sub- the jarfilter- a pattern that should match the resoures in sub to be added
-
copy
private void copy(Jar jar, java.lang.String path, java.io.File from, Instructions preprocess, java.util.Map<java.lang.String,java.lang.String> extra) throws java.lang.Exception
- Throws:
java.lang.Exception
-
copy
private void copy(Jar jar, java.lang.String path, Resource resource, java.util.Map<java.lang.String,java.lang.String> extra)
-
setSourcepath
public void setSourcepath(java.io.File[] files)
-
addSourcepath
public void addSourcepath(java.io.File cp)
-
builds
public Jar[] builds() throws java.lang.Exception
Build Multiple jars. If the -sub command is set, we filter the file with the given patterns.- Throws:
java.lang.Exception
-
startBuild
protected void startBuild(Builder builder) throws java.lang.Exception
Called when we start to build a builder- Throws:
java.lang.Exception
-
doneBuild
protected void doneBuild(Builder builder) throws java.lang.Exception
Called when we're done with a builder- Throws:
java.lang.Exception
-
getSubBuilders
public java.util.List<Builder> getSubBuilders() throws java.lang.Exception
Answer a list of builders that represent this file or a list of files specified in -sub. This list can be empty. These builders represents to be created artifacts and are each scoped to such an artifacts. The builders can be used to build the bundles or they can be used to find out information about the to be generated bundles.- Returns:
- List of 0..n builders representing artifacts.
- Throws:
java.lang.Exception
-
getSubBuilder
public Builder getSubBuilder(java.io.File file) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getSubBuilder
public Builder getSubBuilder() throws java.lang.Exception
- Throws:
java.lang.Exception
-
_maven_version
public java.lang.String _maven_version(java.lang.String[] args)
A macro to convert a maven version to an OSGi version
-
_permissions
public java.lang.String _permissions(java.lang.String[] args)
-
removeBundleSpecificHeaders
public void removeBundleSpecificHeaders()
-
isInScope
public boolean isInScope(java.util.Collection<java.io.File> resources) throws java.lang.ExceptionCheck if the given resource is in scope of this bundle. That is, it checks if the Include-Resource includes this resource or if it is a class file it is on the class path and the Export-Package or Private-Package include this resource.- Throws:
java.lang.Exception
-
getIncludedResourcePrefixes
private java.util.stream.Stream<java.lang.String> getIncludedResourcePrefixes()
Extra the paths for the directories and files that are used in the Include-Resource header.
-
getClasspathEntrySuffix
public java.lang.String getClasspathEntrySuffix(java.io.File resource) throws java.lang.ExceptionAnswer the string of the resource that it has in the container. It is possible that the resource is a classpath entry. In that case an empty string is returned.- Parameters:
resource- The resource to look for- Returns:
- A suffix on the classpath or "" if the resource is a class path entry
- Throws:
java.lang.Exception
-
doNotCopy
public boolean doNotCopy(java.lang.String v)
doNotCopy The doNotCopy variable maintains a patter for files that should not be copied. There is a defaultConstants.DEFAULT_DO_NOT_COPYbut this ca be overridden with theConstants.DONOTCOPYproperty.
-
doNotCopy
public boolean doNotCopy(java.io.File from)
-
getDoNotCopy
public java.util.regex.Pattern getDoNotCopy()
-
setTypeSpecificPlugins
protected void setTypeSpecificPlugins(java.util.Set<java.lang.Object> list)
- Overrides:
setTypeSpecificPluginsin classAnalyzer
-
doDiff
public void doDiff(Jar dot) throws java.lang.Exception
Diff this bundle to another bundle for the given packages.- Throws:
java.lang.Exception
-
show
private void show(Diff p, java.lang.String indent, boolean warning)
Show the diff recursively
-
addSourcepath
public void addSourcepath(java.util.Collection<java.io.File> sourcepath)
-
doBaseline
protected void doBaseline(Jar dot) throws java.lang.Exception
Base line against a previous version. Should be overridden in the ProjectBuilder where we have access to the repos- Throws:
java.lang.Exception
-
_githead
public java.lang.String _githead(java.lang.String[] args) throws java.io.IOException- Throws:
java.io.IOException
-
report
public void report(java.util.Map<java.lang.String,java.lang.Object> table) throws java.lang.ExceptionCreate a report of the settings
-
from
public Builder from(BuilderSpecification spec) throws java.io.IOException
Collect the information from theBuilderSpecification- Throws:
java.io.IOException
-
system
public java.lang.String system(boolean allowFail, java.lang.String command, java.lang.String input) throws java.io.IOException, java.lang.InterruptedExceptionWe override system so that, for the duration of a build operation, we may cache the result of a given system call. In a large build with many 'make' build jars, such as some OSGi CT build projects, we may call system hundreds of time to compute headers based upon git information such as 'git describe'. Since this information will not change during the course of a single build operation, we cache results to only call once.
-
-