Package aQute.bnd.build
Class Workspace
java.lang.Object
aQute.bnd.osgi.Domain
aQute.bnd.osgi.Processor
aQute.bnd.build.Workspace
- All Implemented Interfaces:
Constants,Registry,Report,Reporter,Closeable,AutoCloseable,Iterable<String>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class(package private) static enumStrategy to use when creating a workspace ResourceRepository.(package private) classNested classes/interfaces inherited from class aQute.bnd.osgi.Processor
Processor.CL, Processor.FileLineNested classes/interfaces inherited from interface aQute.service.reporter.Report
Report.LocationNested classes/interfaces inherited from interface aQute.service.reporter.Reporter
Reporter.SetLocation -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final String(package private) static final String(package private) static final String(package private) static final StringProvide a macro that lists all currently loaded project names that match a macro.(package private) static final Stringstatic final Stringstatic final File(package private) static final intprivate Filestatic final Stringprivate static final Map<File,WeakReference<Workspace>> static final Stringstatic final Stringprivate Workspace.WorkspaceDataprivate static final MethodTypeprivate Stringprivate static final Patternstatic final Stringprivate final WorkspaceLayout(package private) static final org.slf4j.Logger(package private) final Maven(package private) final WorkspaceNotifierprivate final AtomicBoolean(package private) static String(package private) static Parametersprivate static final Stringprivate final ProjectTrackerprivate static final ThreadLocal<Boolean>static boolean(package private) ResourceRepositoryImpl(package private) Settings(package private) final ThreadLocal<Reporter>Signal a BndListener plugin.static final Stringprivate static final longprivate final WorkspaceLock(package private) WorkspaceRepositoryFields inherited from class aQute.bnd.osgi.Processor
LIST_SPLITTER, logFields 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, 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, CARDINALITY_DIRECTIVE, CDIANNOTATIONS, CHECK, CLASS_ATTRIBUTE, CLASSPATH, COMMAND_DIRECTIVE, COMPONENT_ACTIVATE, COMPONENT_CONFIGURATION_POLICY, COMPONENT_DEACTIVATE, COMPONENT_DESCRIPTORS, COMPONENT_DESIGNATE, COMPONENT_DESIGNATEFACTORY, COMPONENT_DIRECTIVES, COMPONENT_DIRECTIVES_1_1, COMPONENT_DIRECTIVES_1_2, 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, COMPRESSION, CONDITIONAL_PACKAGE, CONDITIONALPACKAGE, CONDUIT, CONNECTION_SETTINGS, CONSUMER_POLICY, CONTRACT, CREATED_BY, CURRENT_BUNDLESYMBOLICNAME, CURRENT_BUNDLEVERSION, CURRENT_PACKAGE, CURRENT_USES, CURRENT_VERSION, 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_HEADER, EXCLUDE_DIRECTIVE, EXECUTABLE, 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, LIBRARY, 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, 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, RESOLVE_EFFECTIVE, RESOLVE_EXCLUDESYSTEM, RESOLVE_PREFERENCES, RESOLVEDEBUG, RESOURCEONLY, RUNBLACKLIST, RUNBUILDS, RUNBUNDLES, RUNBUNDLES_STARTLEVEL_ATTRIBUTE, RUNEE, RUNENV, RUNFRAMEWORK, RUNFRAMEWORK_NONE, RUNFRAMEWORK_SERVICES, RUNFRAMEWORKRESTART, RUNFW, RUNJDB, RUNKEEP, RUNNOREFERENCES, RUNOPTIONS, RUNOPTIONS_EAGER, RUNPATH, RUNPROGRAMARGS, RUNPROPERTIES, RUNPROVIDEDCAPABILITIES, RUNREMOTE, RUNREPOS, 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, 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, TESTSOURCES, TESTTERMINATE, TESTUNRESOLVED, TOOL, TRANSITIVE_ATTRIBUTE, TSTAMP, UNDERTEST, UPTO, USES_DIRECTIVE, USES_USES, VALID_PROPERTY_TYPES, VERSION_ATTR_HASH, VERSION_ATTR_LATEST, VERSION_ATTR_PROJECT, VERSION_ATTR_SNAPSHOT, VERSION_ATTRIBUTE, VERSION_FILTER, VERSIONDEFAULTS, VISIBILITY_DIRECTIVE, WAB, WABLIB, WORKINGSET, WORKINGSET_MEMBER -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateWorkspace(WorkspaceLayout layout) Create a workspace on the given directory, assuming that it contains a cnf directory.Create a workspace with the given directory and the bnd directory, normally cnf. -
Method Summary
Modifier and TypeMethodDescriptionMacro to return the driver._findproviders(String[] args) A macro that returns a set of resources in bundle selection format from the repositories.The macro to access the gestaltProvide access to the global settings of this machine._projectswhere(String[] args) _repodigests(String[] args) Return the repository signature digests._workspace(String[] args) voidaddCommand(String menu, Action action) protected voidaddExtensions(PluginsContainer pluginsContainer) Add any extensions listedstatic voidaddGestalt(String part, Attrs attrs) Add a gestalt to all workspaces.booleanAdd a pluginvoidbracket(boolean begin) voidchangedFile(File f) Inform any listeners that we changed a file (created/deleted/changed).voidvoidclose()static WorkspacecreateProject(String name) Create a project in this workspacestatic WorkspacecreateStandaloneWorkspace(Processor run, URI base) Create a workspace that does not inherit from a cnf directory etc.static WorkspacecreateWorkspace(File wsdir) Create a new WorkspacebooleanFunctions that the workspace likes to apply to its children before the properties are processed.private ObjectvoidfillActions(Map<String, Action> all) Stream<org.osgi.resource.Capability>findProviders(String namespace, String filter) Find capability providers in the resources in the workspace's repositories.(package private) Stream<org.osgi.resource.Capability>findProviders(String namespace, String filter, Workspace.ResourceRepositoryStrategy strategy) static WorkspacefindWorkspace(File base) /* Return the nearest workspaceprivate voidprivate voidvoidprivate voidgetBuildOrder(Collection<Project> dependsOn, Set<Project> result) getBundle(String bsn, Version version, Map<String, String> attrs, Workspace.ResourceRepositoryStrategy strategy) getBundle(org.osgi.resource.Resource resource) getBundle(org.osgi.resource.Resource resource, Workspace.ResourceRepositoryStrategy strategy) static ProcessorGet the bnddriver, can be null if not set.getExpandedInCache(String urn, File file) Get a cached directory of an inputstream to a Jar.getExpandedInCache(org.osgi.resource.Resource resource) Get a cached directory of an expanded resource.Execute a function with a class from a plugin loaded from the repositories.Get the complete gestaltgetGestalt(String part) Get the attrs for a gestalt partorg.osgi.util.promise.Promise<List<RepositoryPlugin>>Get the repositories and ensure they are all ready.Get the layout style of the workspace.getMaven()static ProjectgetProject(File projectDir) This static method finds the workspace and creates a project (or returns an existing project)getProject(String bsn) getProjectFromFile(File projectDir) getRepository(String repo) (package private) org.osgi.service.repository.RepositoryReturn an aggregate repository of all the repositories to search.static Runstatic WorkspacegetWorkspace(File workspaceDir) static WorkspacegetWorkspace(File workspaceDir, String bndDir) static WorkspacegetWorkspace(String path) Return the workspace repostatic WorkspacegetWorkspaceWithoutException(File workspaceDir) private List<RepositoryPlugin>booleanbooleanReturn if this is an interactive environment like Eclipse or runs in batch mode.booleanbooleanbooleanisValid()private static <T> TnewInstance(Class<T> rawClass) Get a new notifier that receives notifications from the workspace & projects.voidopen()Open the workspace.void<T> TreadLocked(Callable<T> callable) <T> TreadLocked(Callable<T> callable, long timeoutInMs) <T> TreadLocked(Callable<T> callable, BooleanSupplier canceled) <T> TreadLocked(Callable<T> callable, BooleanSupplier canceled, long timeoutInMs) Lock the workspace for reading.booleanrefresh()voidrefresh(RepositoryPlugin repo) private voidvoidSignal that the driver has detected a dynamic change in the workspace directory, for example a project was added or removed in the IDE.voidremoveCommand(String menu) booleanremovePlugin(String alias) (package private) voidvoidReport details of this workspacestatic voidSearch for a partial class name.Search for a class name inside particular package.voidsetBuildDir(File buildDir) static voidSet the driver of this environmentvoidsetFileSystem(File workspaceDir, String bndDir) setOffline(boolean on) protected voidsetTypeSpecificPlugins(PluginsContainer pluginsContainer) voidsignal()voidvoidtoString()Printout of the status of this processor for toString()<T> TwriteLocked(Callable<T> callable) <T> TwriteLocked(Callable<T> callable, long timeoutInMs) <T> TwriteLocked(Callable<T> callable, BooleanSupplier canceled) <T> TwriteLocked(Callable<T> callable, BooleanSupplier canceled, long timeoutInMs) Lock the workspace for all functions including modification.Methods inherited from class aQute.bnd.osgi.Processor
_basedir, _fileuri, _findfile, _frange, _native_capability, _propertiesdir, _propertiesname, _random, _thisfile, _uri, addBasicPlugin, addClose, addIncluded, addProperties, addProperties, append, appendPath, begin, beginHandleErrors, check, clear, concat, customize, decorated, decorated, doAttrbutes, doIncludeFile, doIncludeFile, endHandleErrors, error, error, exception, exists, findHeader, findHeader, findHeader, forceRefresh, formatArrays, get, get, getBase, getBaseURI, getChecksum, getClass, getDuration, getErrors, getExecutor, getFile, getFile, getFlattenedProperties, getFlattenedProperties, getHeader, getHeader, getHeader, getHeader, getIncluded, getInfo, getInfo, getInstructions, getJarFromName, 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, isMissingPlugin, isOk, isPedantic, isPerfect, isTrace, isTrue, iterator, join, join, join, join, join, join, keySet, lastModified, 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, quote, read, removeBasicPlugin, removeClose, removeDuplicateMarker, replaceAll, replaceExtension, report, set, setBase, setExceptions, setFileMustExist, setForceLocal, setLocation, setParent, setPedantic, setProperties, setProperties, setProperties, setProperties, setPropertiesFile, setProperty, setTrace, since, split, split, split, spliterator, system, system, toFullHeaderPattern, trace, unsetProperty, updateModified, use, warningMethods 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 Details
-
logger
static final org.slf4j.Logger logger -
BND_DEFAULT_WS
-
BND_CACHE_REPONAME
- See Also:
-
EXT
- See Also:
-
BUILDFILE
- See Also:
-
CNFDIR
- See Also:
-
CACHEDIR
-
STANDALONE_REPO_CLASS
- See Also:
-
BUFFER_SIZE
static final int BUFFER_SIZE- See Also:
-
PLUGIN_STANDALONE
- See Also:
-
cache
-
defaults
-
commands
-
maven
-
offline
-
settings
Settings settings -
workspaceRepo
WorkspaceRepository workspaceRepo -
overallDriver
-
overallGestalt
-
signalBusy
Signal a BndListener plugin. We ran an infinite bug loop :-( -
resourceRepositoryImpl
ResourceRepositoryImpl resourceRepositoryImpl -
driver
-
layout
-
trail
-
data
-
buildDir
-
projects
-
workspaceLock
-
WORKSPACE_LOCK_DEFAULT_TIMEOUTMS
private static final long WORKSPACE_LOCK_DEFAULT_TIMEOUTMS- See Also:
-
notifier
-
remoteWorkspaces
public static boolean remoteWorkspaces -
_globalHelp
- See Also:
-
_repodigestsHelp
- See Also:
-
_gestaltHelp
- See Also:
-
defaultConstructor
-
ESCAPE_P
-
_projectswhereHelp
Provide a macro that lists all currently loaded project names that match a macro. This macro checks for cycles since I am not sure if calling getAllProjects is safe for some macros in all cases. I.e. the primary use case wants to use it in -dependson${projectswhere;key;glob}- See Also:
-
projectswhereCycleCheck
-
_findprovidersHelp
- See Also:
-
-
Constructor Details
-
Workspace
Create a workspace on the given directory, assuming that it contains a cnf directory. SeeWorkspace(File, String)- Parameters:
workspaceDir- the worksapce directory- Throws:
Exception
-
Workspace
Create a workspace with the given directory and the bnd directory, normally cnf. (Though there are some use cases where this is in another place.) This will create aWorkspaceLayout.BNDlayout set the base to the workspaceDir, and read the properties in the `build.bnd` file in the bndDir sub directory.This will read the version specific defaults after the properties are read from build.bnd in an _intermediate_ processor.
- Parameters:
workspaceDir- the workspace directorybndDir- the bnd directory with build.bnd- Throws:
Exception
-
Workspace
- Throws:
Exception
-
-
Method Details
-
getProject
This static method finds the workspace and creates a project (or returns an existing project)- Parameters:
projectDir-- Throws:
Exception
-
getDefaults
-
createDefaultWorkspace
- Throws:
Exception
-
getWorkspace
- Throws:
Exception
-
getWorkspaceWithoutException
- Throws:
Exception
-
findWorkspace
/* Return the nearest workspace- Throws:
Exception
-
getWorkspace
- Throws:
Exception
-
open
public void open()Open the workspace. This will start sending events and, when interactive, might start some processes to create initial configuration like repos. -
fixupVersionDefaults
- Throws:
IOException
-
setFileSystem
- Throws:
Exception
-
getProjectFromFile
-
getProject
-
isPresent
-
refresh
public boolean refresh() -
refreshProjects
public void refreshProjects()Signal that the driver has detected a dynamic change in the workspace directory, for example a project was added or removed in the IDE. Since this does not affect the inherited properties we can only change the list of projects. -
forceRefreshProjects
public void forceRefreshProjects() -
propertiesChanged
public void propertiesChanged()- Overrides:
propertiesChangedin classProcessor
-
forceInitialization
private void forceInitialization() -
_workspace
-
addCommand
-
removeCommand
-
fillActions
-
getAllProjects
-
getCurrentProjects
- See Also:
-
changedFile
Inform any listeners that we changed a file (created/deleted/changed).- Parameters:
f- The changed file
-
bracket
public void bracket(boolean begin) -
signal
-
signal
public void signal() -
syncCache
- Throws:
Exception
-
getRepositories
-
initRepositories
-
getInitializedRepositories
Get the repositories and ensure they are all ready.- Returns:
- a promise with the list of repos
-
getBuildOrder
- Throws:
Exception
-
getBuildOrder
- Throws:
Exception
-
getWorkspace
- Throws:
Exception
-
getMaven
-
setTypeSpecificPlugins
- Overrides:
setTypeSpecificPluginsin classProcessor
-
addExtensions
Add any extensions listed- Overrides:
addExtensionsin classProcessor- Parameters:
pluginsContainer-
-
isOffline
public boolean isOffline() -
getOffline
-
setOffline
-
_global
Provide access to the global settings of this machine.- Throws:
Exception
-
_user
- Throws:
Exception
-
_repodigests
Return the repository signature digests. These digests are a unique id for the contents of the repository- Throws:
Exception
-
getRun
- Throws:
Exception
-
report
Report details of this workspace -
getCache
-
getWorkspaceRepository
Return the workspace repo -
checkStructure
public void checkStructure() -
getBuildDir
-
setBuildDir
-
isValid
public boolean isValid() -
getRepository
- Throws:
Exception
-
close
public void close() -
refreshData
private void refreshData() -
getDriver
Get the bnddriver, can be null if not set. The overallDriver is the environment that runs this bnd. -
setDriver
Set the driver of this environment -
_driver
Macro to return the driver. Without any arguments, we return the name of the driver. If there are arguments, we check each of the arguments against the name of the driver. If it matches, we return the driver name. If none of the args match the driver name we return an empty string (which is false). -
addGestalt
Add a gestalt to all workspaces. The gestalt is a set of parts describing the environment. Each part has a name and optionally attributes. This method adds a gestalt to the VM. Per workspace it is possible to augment this. -
getGestalt
Get the attrs for a gestalt part -
getGestalt
Get the complete gestalt -
getLayout
Get the layout style of the workspace. -
_gestalt
The macro to access the gestalt$ gestalt;part[;key[;value]] -
toString
Description copied from class:ProcessorPrintout of the status of this processor for toString() -
addPlugin
public boolean addPlugin(Class<?> plugin, String alias, Map<String, String> parameters, boolean force) throws ExceptionAdd a plugin- Parameters:
plugin-- Throws:
Exception
-
newInstance
- Throws:
Exception
-
escaped
-
removePlugin
-
createStandaloneWorkspace
Create a workspace that does not inherit from a cnf directory etc.- Parameters:
run-- Throws:
Exception
-
isDefaultWorkspace
public boolean isDefaultWorkspace() -
isInteractive
public boolean isInteractive()Description copied from class:ProcessorReturn if this is an interactive environment like Eclipse or runs in batch mode. If interactive, things can get refreshed.- Overrides:
isInteractivein classProcessor
-
resetStatic
public static void resetStatic() -
createProject
Create a project in this workspace- Throws:
Exception
-
removeProject
- Throws:
Exception
-
createWorkspace
Create a new Workspace- Parameters:
wsdir-- Throws:
Exception
-
readLocked
public <T> T readLocked(Callable<T> callable, BooleanSupplier canceled, long timeoutInMs) throws Exception Lock the workspace for reading. The callable parameter when called can freely use any read function in the workspace.- Parameters:
callable- the Callable to runcanceled- Has the operation been cancelled?timeoutInMs- the timeout in milliseconds- Returns:
- the value of the lambda
- Throws:
InterruptedException- If the thread is interrupted while waiting for the lock.TimeoutException- If the lock was not obtained within the timeout period or the specified monitor is cancelled while waiting to obtain the lock.Exception- If the callable throws an exception.
-
readLocked
- Throws:
Exception
-
readLocked
- Throws:
Exception
-
readLocked
- Throws:
Exception
-
writeLocked
public <T> T writeLocked(Callable<T> callable, BooleanSupplier canceled, long timeoutInMs) throws Exception Lock the workspace for all functions including modification. The callable parameter when called can freely use any function in the workspace.- Parameters:
callable- the Callable to runcanceled- Has the operation been cancelled?timeoutInMs- the timeout in milliseconds- Returns:
- the value of the lambda
- Throws:
InterruptedException- If the thread is interrupted while waiting for the lock.TimeoutException- If the lock was not obtained within the timeout period or the specified monitor is cancelled while waiting to obtain the lock.Exception- If the callable throws an exception.
-
writeLocked
- Throws:
Exception
-
writeLocked
- Throws:
Exception
-
writeLocked
- Throws:
Exception
-
_projectswhere
-
refresh
-
search
Search for a partial class name. The partialFqn name may be a simple class name (Foo) or a fully qualified class name line (foo.bar.Foo), including nested classes, or only a package name prefix (foo.bar or even foo.ba).This method uses the heuristic in
determine()to split the package name from the (possibly nested) class name - the start of the class name is taken as the first element that starts with a capital letter. This heuristic works fine in most cases, but it is not foolproof. In contexts where you have a better idea of how to separate the package name from the class name, you can usesearch(String, String)for this purpose.- Parameters:
partialFqn- a packagename ( '.' classname )*- Returns:
- a multi-map containing the search matches with the matching fully-qualified class name as each entry's key, and a list of matching bundles as the value.
- Throws:
Exception- See Also:
-
search
public Result<Map<String,List<BundleId>>> search(String packageName, String className) throws Exception Search for a class name inside particular package. Use this in preference tosearch(String)when you know that the qualifier resolves to a package and not to a class.- Parameters:
packageName- the package to searchclassName- a classname ( '.' classname )*- Returns:
- a multi-map containing the search matches with the matching fully-qualified class name as each entry's key, and a list of matching bundles as the value.
- Throws:
Exception- See Also:
-
getResourceRepository
org.osgi.service.repository.Repository getResourceRepository(Workspace.ResourceRepositoryStrategy strategy) throws Exception Return an aggregate repository of all the repositories to search. This resource repository must be obtained for each operation, it might become stale over time.- Parameters:
strategy- Strategy to use for which repositories to search.- Returns:
- an aggregate repository
- Throws:
Exception
-
_findproviders
A macro that returns a set of resources in bundle selection format from the repositories. For example:${findproviders;osgi.wiring.package;(osgi.wiring.package=aQute.bnd.build);ALL}- Throws:
Exception
-
findProviders
public Stream<org.osgi.resource.Capability> findProviders(String namespace, String filter) throws Exception Find capability providers in the resources in the workspace's repositories.- Parameters:
namespace- Capability namespace.filter- Filter expression to limit the capabilities. Optional, may benullor an empty string.- Returns:
- A stream of capabilities found. May be an empty stream.
- Throws:
Exception
-
findProviders
Stream<org.osgi.resource.Capability> findProviders(String namespace, String filter, Workspace.ResourceRepositoryStrategy strategy) throws Exception - Throws:
Exception
-
getExternalPlugins
Execute a function with a class from a plugin loaded from the repositories. SeeWorkspaceExternalPluginHandler. -
getBundle
-
getBundle
public Result<File> getBundle(org.osgi.resource.Resource resource, Workspace.ResourceRepositoryStrategy strategy) -
getBundle
-
getBundle
-
on
Get a new notifier that receives notifications from the workspace & projects. This object should be closed if it is not longer needed. -
doExtend
Functions that the workspace likes to apply to its children before the properties are processed. I.e. this should be called inProcessor.propertiesChanged()This is initially used to do the library functionality but it is open for others where the properties might be affected after some initial processing.
- Parameters:
processor- the processor to augment- Returns:
- true if the properties were changed
-
getExpandedInCache
Get a cached directory of an expanded resource. The resource must be a JAR file.- Parameters:
resource- a resource- Returns:
- a result with the directory or an error
-
getExpandedInCache
Get a cached directory of an inputstream to a Jar.- Parameters:
urn- A unique resource name of the structure 'urn:' scheme ':' ...file- an file of a Jar- Returns:
- a result with the directory or an error
- Throws:
IOException
-