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
_githeadHelp
private Instructions
defaultPreProcessMatcher
private DiffPluginImpl
differ
(package private) static DSAnnotations
dsAnnotations
(package private) boolean
firstUse
(package private) static java.util.regex.Pattern
GITREF_P
#388 Manifest header to get GIT head Get the head commit number.(package private) static java.util.regex.Pattern
IR_PATTERN
private static org.slf4j.Logger
logger
private Make
make
(package private) static MakeBnd
makeBnd
(package private) static MakeCopy
makeCopy
(package private) static MetatypeAnnotations
metatypeAnnotations
(package private) static MetatypePlugin
metatypePlugin
(package private) static ServiceComponent
serviceComponent
private java.util.List<java.io.File>
sourcePath
private static int
SPLIT_DEFAULT
private static int
SPLIT_ERROR
private static int
SPLIT_FIRST
private static int
SPLIT_MERGE_FIRST
private static int
SPLIT_MERGE_LAST
private Tree
tree
private java.util.regex.Pattern
xdoNotCopy
-
Fields inherited from class aQute.bnd.osgi.Analyzer
_classesHelp, _md5Help, _packagesHelp, _sha1Help, bndInfo, DEFAULT_CONSUMER_POLICY, DEFAULT_PROVIDER_POLICY, df, fuzzyModifier, fuzzyVersion, fuzzyVersionRange, msgs, nummeric, OBJECT_REFERENCE, OLD_PACKAGEINFO_SYNTAX_P
-
Fields inherited from class aQute.bnd.osgi.Processor
_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
-
Fields inherited from class aQute.bnd.osgi.Domain
translation
-
Fields inherited from interface aQute.bnd.osgi.Constants
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
-
-
Method Summary
All 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)
boolean
addAll(Jar to, Jar sub, Instruction filter)
Add all the resources in the given jar that match the given filter.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.void
addSourcepath(java.io.File cp)
void
addSourcepath(java.util.Collection<java.io.File> sourcepath)
private void
addSources(Jar dot)
private void
addWabLib(Jar dot, java.io.File f)
Add a wab lib to the jar.void
analyze()
Intercept the call to analyze and cleanup versions after we have analyzed the setup.Jar
build()
Jar[]
builds()
Build Multiple jars.protected void
changedFile(java.io.File f)
void
cleanupVersion(Packages packages, java.lang.String defaultVersion)
private void
copy(Jar dest, Jar srce, java.lang.String path, boolean overwrite)
Copprivate void
copy(Jar jar, java.lang.String path, Resource resource, java.util.Map<java.lang.String,java.lang.String> extra)
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)
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.private java.lang.String
diagnostic(java.lang.String pack, java.util.List<Jar> culprits)
Analyze the classpath for a split packageprotected void
doBaseline(Jar dot)
Base line against a previous version.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)
It is possible in Include-Resource to use a system command that generates the contents, this is indicated withcmd
attribute.void
doDiff(Jar dot)
Diff this bundle to another bundle for the given packages.private void
doDigests(Jar dot)
Check if we need to calculate any checksums.private void
doExpand(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 void
doIncludeResource(Jar jar, Parameters clauses)
private void
doIncludeResource(Jar jar, java.lang.String includes)
private void
doIncludeResource(Jar jar, java.lang.String name, java.util.Map<java.lang.String,java.lang.String> extra)
private void
doIncludeResources(Jar jar)
Parse the Bundle-Includes header.protected void
doneBuild(Builder builder)
Called when we're done with a builderboolean
doNotCopy(java.io.File from)
boolean
doNotCopy(java.lang.String v)
doNotCopy The doNotCopy variable maintains a patter for files that should not be copied.(package private) void
doPom(Jar dot)
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)
private void
doSaveManifest(Jar dot)
Get the manifest and write it out separately if -savemanifest is setprivate java.lang.String
doSnapshot(java.lang.String version)
private void
doVerify(Jar dot)
private Jar
doWab(Jar dot)
Turn this normal bundle in a web and add any resources.private void
extractFromJar(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 long
findLastModifiedWhileOlder(java.io.File file, long lastModified)
Check if a file or directory is older than the given time.java.lang.String
getClasspathEntrySuffix(java.io.File resource)
Answer the string of the resource that it has in the container.java.util.regex.Pattern
getDoNotCopy()
protected Jar
getExtra()
Answer extra packages.private java.util.Collection<java.lang.String>
getIncludedResourcePrefixes()
Extra the paths for the directories and files that are used in the Include-Resource header.private Instructions
getPreProcessMatcher(java.util.Map<java.lang.String,java.lang.String> extra)
java.util.Collection<java.io.File>
getSourcePath()
private int
getSplitStrategy(java.lang.String type)
Builder
getSubBuilder()
Builder
getSubBuilder(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.boolean
hasSources()
void
init()
Allow any local initialization by subclasses before we build.boolean
isInScope(java.util.Collection<java.io.File> resources)
Check if the given resource is in scope of this bundle.private Instruction
matches(Instructions instructions, java.lang.String pack, java.util.Set<Instruction> unused, java.lang.String source)
Matches the instructions against a package.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)
void
removeBundleSpecificHeaders()
void
report(java.util.Map<java.lang.String,java.lang.Object> table)
Create a report of the settingsprivate 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)
void
setSourcepath(java.io.File[] files)
protected void
setTypeSpecificPlugins(java.util.Set<java.lang.Object> list)
private void
show(Diff p, java.lang.String indent, boolean warning)
Show the diff recursively(package private) void
sign(Jar jar)
Sign the jar file.protected void
startBuild(Builder builder)
Called when we start to build a builderprivate void
traverse(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, augmentExports, augmentImports, begin, calcManifest, calculateExportsFromContents, calculateVersionRange, check, cleanupModifier, cleanupUses, cleanupVersion, clear, close, divideRegularAndDynamicImports, doExportsToImports, doNameSection, doPlugins, doRequireBnd, doUses, doUses, filter, findClass, findPath, findProvidedPackages, findResource, fixupAttributes, forceRefresh, getAPIUses, getBndInfo, getBndLastModified, getBndVersion, getBsn, getClasses, getClasspath, getClasspathExports, getClassspace, getClassspace, getContained, getDescriptor, getEEs, getExports, getHighestEE, getImports, getJar, getJarFromName, getJarsFromName, getLowestEE, getManifest, getName, getOutputFile, getPackageRef, getPackages, getPrivates, getReferred, getSourceFileFor, getSourceFileFor, getTarget, getTypeRef, getTypeRefFromFQN, getTypeRefFromPath, getUnreachable, getUses, getVersion, getVersionPolicy, getXRef, isImported, isNoBundle, isResourceOnly, mergeManifest, 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, 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, signal, since, split, split, split, toFullHeaderPattern, toString, trace, tree, unsetProperty, updateModified, use, warning
-
Methods inherited from class aQute.bnd.osgi.Domain
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
-
-
-
-
Field Detail
-
logger
private static final org.slf4j.Logger logger
-
IR_PATTERN
static 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
-
firstUse
boolean firstUse
-
tree
private Tree tree
-
makeBnd
static MakeBnd makeBnd
-
makeCopy
static MakeCopy makeCopy
-
serviceComponent
static ServiceComponent serviceComponent
-
dsAnnotations
static DSAnnotations dsAnnotations
-
metatypePlugin
static MetatypePlugin metatypePlugin
-
metatypeAnnotations
static MetatypeAnnotations metatypeAnnotations
-
GITREF_P
static 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 java.lang.String _githeadHelp
-
-
Constructor Detail
-
Builder
public Builder(Processor parent)
-
Builder
public Builder()
-
-
Method Detail
-
build
public Jar build() throws java.lang.Exception
- Throws:
java.lang.Exception
-
doPom
void doPom(Jar dot) throws java.lang.Exception, java.io.IOException
- Throws:
java.lang.Exception
java.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.Exception
Allow 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
-
addWabLib
private void addWabLib(Jar dot, java.io.File f) 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.Exception
Intercept 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)
-
addSources
private void addSources(Jar dot) throws java.lang.Exception
- Throws:
java.io.IOException
java.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- Parameters:
jar
-name
-instructions
-- 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.- Parameters:
dest
-providers
-directory
-splitStrategy
-
-
copy
private void copy(Jar dest, Jar srce, java.lang.String path, boolean overwrite)
Cop- Parameters:
dest
-srce
-path
-overwriteResource
-
-
diagnostic
private java.lang.String diagnostic(java.lang.String pack, java.util.List<Jar> culprits)
Analyze the classpath for a split package- Parameters:
pack
-classpath
-source
-
-
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.IOException
java.io.FileNotFoundException
java.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.ZipException
java.io.IOException
java.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.ZipException
java.io.IOException
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 withcmd
attribute. The command can be repeated for a number of source files with thefor
attribute 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 nofor
is 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. The clause is the- Parameters:
jar
-clauses
-i
-- Throws:
java.util.zip.ZipException
java.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.Exception
Check 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.Collection<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.Exception
Answer 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_COPY
but this ca be overridden with theConstants.DONOTCOPY
property.
-
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:
setTypeSpecificPlugins
in classProcessor
-
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- Parameters:
p
-i
-
-
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
-
-