Constructor and Description |
---|
ReadOnlyState(State target) |
Modifier and Type | Method and Description |
---|---|
boolean |
addBundle(BundleDescription description)
Adds the given bundle to this state.
|
void |
addDisabledInfo(DisabledInfo disabledInfo)
Adds the disabled info to this state.
|
void |
addDynamicImportPackages(BundleDescription importingBundle,
ImportPackageSpecification[] dynamicImports)
Adds the specified dynamic imports to the specified importingBundle.
|
void |
addResolverError(BundleDescription bundle,
int type,
String data,
VersionConstraint unsatisfied)
Adds a new
ResolverError for the specified bundle. |
StateDelta |
compare(State state)
Returns a delta describing the differences between this state and the
given state.
|
BundleDescription |
getBundle(long id)
Returns the bundle descriptor for the bundle with the given id.
|
BundleDescription |
getBundle(String symbolicName,
Version version)
Returns the bundle descriptor for the bundle with the given name and
version.
|
BundleDescription |
getBundleByLocation(String location)
Returns the bundle descriptor for the bundle with the given location
identifier.
|
BundleDescription[] |
getBundles()
Returns descriptions for all bundles known to this state.
|
BundleDescription[] |
getBundles(String symbolicName)
Returns all bundle descriptions with the given bundle symbolic name.
|
StateDelta |
getChanges()
Returns the delta representing the changes from the time this state was
first captured until now.
|
Collection<BundleDescription> |
getDependencyClosure(Collection<BundleDescription> bundles)
Returns the dependency closure for the specified bundles.
|
BundleDescription[] |
getDisabledBundles()
Returns an array of BundleDescriptions for the bundles that are disabled
in the system.
|
DisabledInfo |
getDisabledInfo(BundleDescription bundle,
String policyName)
Returns the disabled info for the specified bundle with the specified policy name.
|
DisabledInfo[] |
getDisabledInfos(BundleDescription bundle)
Returns an array of disabled info for the specified bundle.
|
ExportPackageDescription[] |
getExportedPackages()
Returns all exported packages in this state, according to the OSGi rules for resolution.
|
StateObjectFactory |
getFactory()
Returns the factory that created this state.
|
long |
getHighestBundleId()
Returns the highest bundle ID.
|
Dictionary[] |
getPlatformProperties()
Returns the list of platform properties currently set for this state.
|
BundleDescription[] |
getRemovalPending()
Returns descriptions for all bundles in a removal pending state.
|
BundleDescription[] |
getResolvedBundles()
Returns descriptions for all bundles currently resolved in this state.
|
Resolver |
getResolver()
Returns the resolver associated with this state.
|
ResolverError[] |
getResolverErrors(BundleDescription bundle)
Returns all
ResolverError s for the given bundle |
StateHelper |
getStateHelper()
Returns a state helper object.
|
ExportPackageDescription[] |
getSystemPackages()
Returns the list of system packages which are exported by the system bundle.
|
long |
getTimeStamp()
Returns the timestamp for this state.
|
boolean |
isEmpty()
Returns whether this state is empty.
|
boolean |
isResolved()
Returns true if there have been no modifications to this state since the
last time resolve() was called.
|
ExportPackageDescription |
linkDynamicImport(BundleDescription importingBundle,
String requestedPackage)
Attempts to find an ExportPackageDescription that will satisfy a dynamic import
for the specified requestedPackage for the specified importingBundle.
|
boolean |
removeBundle(BundleDescription bundle)
Removes the given bundle description.
|
BundleDescription |
removeBundle(long bundleId)
Removes a bundle description with the given bundle id.
|
void |
removeBundleComplete(BundleDescription bundle)
Sets the given removal pending bundle to removal complete for this state.
|
void |
removeDisabledInfo(DisabledInfo disabledInfo)
Removes the disabled info from the state.
|
void |
removeResolverErrors(BundleDescription bundle)
Removes all
ResolverError s for the specified bundle. |
StateDelta |
resolve()
Same as State.resolve(true);
|
StateDelta |
resolve(boolean incremental)
Resolves the constraints contained in this state using the resolver
currently associated with the state and returns a delta describing the
changes in resolved states and dependencies in the state.
|
StateDelta |
resolve(BundleDescription[] discard)
Resolves the constraints contained in this state using the resolver
currently associated with the state in an incremental, "least-perturbing"
mode, and returns a delta describing the changes in resolved states and
dependencies in the state.
|
StateDelta |
resolve(BundleDescription[] resolve,
boolean discard)
Resolves the constraints contained in this state using the resolver
currently associated with the state in an incremental, "least-perturbing"
mode, and returns a delta describing the changes in resolved states and
dependencies in the state.
|
void |
resolveBundle(BundleDescription bundle,
boolean status,
BundleDescription[] hosts,
ExportPackageDescription[] selectedExports,
BundleDescription[] resolvedRequires,
ExportPackageDescription[] resolvedImports)
Deprecated.
|
void |
resolveBundle(BundleDescription bundle,
boolean status,
BundleDescription[] host,
ExportPackageDescription[] selectedExports,
ExportPackageDescription[] substitutedExports,
BundleDescription[] resolvedRequires,
ExportPackageDescription[] resolveImports)
Deprecated.
|
void |
resolveBundle(BundleDescription bundle,
boolean status,
BundleDescription[] hosts,
ExportPackageDescription[] selectedExports,
ExportPackageDescription[] substitutedExports,
GenericDescription[] selectedCapabilities,
BundleDescription[] resolvedRequires,
ExportPackageDescription[] resolvedImports,
GenericDescription[] resolvedCapabilities,
Map<String,List<StateWire>> resolvedRequirements)
Sets whether or not the given bundle is selected in this state.
|
void |
resolveConstraint(VersionConstraint constraint,
BaseDescription supplier)
Resolves the given version constraint with the given supplier.
|
void |
setNativePathsInvalid(NativeCodeDescription nativeCodeDescription,
boolean hasInvalidPaths)
Sets the native code paths of a native code description as invalid.
|
void |
setOverrides(Object value)
Sets the version overrides which are to be applied during the resolutoin
of this state.
|
boolean |
setPlatformProperties(Dictionary<?,?> platformProperties)
Sets the platform properties of the state.
|
boolean |
setPlatformProperties(Dictionary<?,?>[] platformProperties)
Sets the platform properties of the state to a list of platform properties.
|
void |
setResolver(Resolver value)
Sets the resolver associated with this state.
|
void |
setResolverHookFactory(ResolverHookFactory hookFactory)
Sets the resolver hook factory for this state.
|
void |
setTimeStamp(long timeStamp)
Sets the timestamp for this state
|
boolean |
updateBundle(BundleDescription newDescription)
Updates an existing bundle description with the given description.
|
public ReadOnlyState(State target)
public boolean addBundle(BundleDescription description)
State
If the bundle already exists in another state then an IllegalStateException
will be thrown. Note that even if you remove a BundleDescription
from
one State
object using State.removeBundle(BundleDescription)
it
may still be considered as removing pending if other bundles in that state depend on the
bundle you removed. To complete a pending removal a call must be done to
State.resolve(BundleDescription[])
with the removed bundle.
public StateDelta compare(State state) throws BundleException
State
Note that the generated StateDelta will contain BundleDeltas with one of the following types: BundleDelta.ADDED, BundleDelta.REMOVED and BundleDelta.UPDATED
compare
in interface State
state
- the base stateBundleException
public BundleDescription getBundle(long id)
State
null
is returned if no such bundle is found in
this state.getBundle
in interface State
BundleDescription.getBundleId()
public BundleDescription getBundle(String symbolicName, Version version)
State
version is
null.
public BundleDescription getBundleByLocation(String location)
State
getBundleByLocation
in interface State
location
- location identifier of the bundle to querypublic BundleDescription[] getBundles()
State
getBundles
in interface State
public BundleDescription[] getBundles(String symbolicName)
State
getBundles
in interface State
symbolicName
- symbolic name of the bundles to querypublic StateDelta getChanges()
State
getChanges
in interface State
public ExportPackageDescription[] getExportedPackages()
State
getExportedPackages
in interface State
PackageAdmin.getExportedPackages(org.osgi.framework.Bundle)
public StateObjectFactory getFactory()
State
getFactory
in interface State
public BundleDescription[] getResolvedBundles()
State
getResolvedBundles
in interface State
public long getTimeStamp()
State
getTimeStamp
in interface State
public boolean isEmpty()
State
public boolean isResolved()
State
isResolved
in interface State
public boolean removeBundle(BundleDescription bundle)
State
removeBundle
in interface State
bundle
- the bundle description to be removedtrue
, if if the bundle description was removed,
false
otherwisepublic BundleDescription removeBundle(long bundleId)
State
removeBundle
in interface State
bundleId
- the id of the bundle description to be removednull
, if a bundle
with the given id does not exist in this statepublic StateDelta resolve()
State
public StateDelta resolve(boolean incremental)
State
Note that this method is typically implemented using
this.getResolver().resolve();and is the preferred path for invoking resolution. In particular, states should refuse to perform updates (@see #select() and #resolveConstraint()) if they are not currently involved in a resolution cycle.
Note the given state is destructively modified to reflect the results of resolution.
public StateDelta resolve(BundleDescription[] discard)
State
resolve
in interface State
discard
- an array containing descriptions for bundles whose
current resolution state should be forgotten. If null
then all the current removal pending BundleDescriptions are refreshed.public StateDelta resolve(BundleDescription[] resolve, boolean discard)
State
resolve
in interface State
resolve
- an array containing descriptions for bundles to resolve.discard
- a value of true indicates the resolve descriptions
should have their current resolution state discarded and re-resolved.public void setOverrides(Object value)
State
setOverrides
in interface State
public boolean updateBundle(BundleDescription newDescription)
State
updateBundle
in interface State
newDescription
- the bundle description to replace an existing onetrue
, if if the bundle description was updated,
false
otherwisepublic void resolveConstraint(VersionConstraint constraint, BaseDescription supplier)
State
This method is intended to be used by resolvers in the process of determining which constraints are satisfied by which components.
resolveConstraint
in interface State
constraint
- the version constraint to updatesupplier
- the supplier which satisfies the constraint. May be null if
the constraint is to be unresolved.public void resolveBundle(BundleDescription bundle, boolean status, BundleDescription[] hosts, ExportPackageDescription[] selectedExports, BundleDescription[] resolvedRequires, ExportPackageDescription[] resolvedImports)
State
This method is intended to be used by resolvers in the process of determining which constraints are satisfied by which components.
resolveBundle
in interface State
bundle
- the bundle to updatestatus
- whether or not the given bundle is resolved, if false the other parameters are ignoredhosts
- the host for the resolve fragment, can be null
selectedExports
- the selected exported packages for this resolved bundle, can be null
resolvedRequires
- the BundleDescription
s that resolve the required bundles for this bundle, can be null
resolvedImports
- the exported packages that resolve the imports for this bundle, can be null
public void resolveBundle(BundleDescription bundle, boolean status, BundleDescription[] host, ExportPackageDescription[] selectedExports, ExportPackageDescription[] substitutedExports, BundleDescription[] resolvedRequires, ExportPackageDescription[] resolveImports)
State
This method is intended to be used by resolvers in the process of determining which constraints are satisfied by which components.
resolveBundle
in interface State
bundle
- the bundle to updatestatus
- whether or not the given bundle is resolved, if false the other parameters are ignoredhost
- the host for the resolve fragment, can be null
selectedExports
- the selected exported packages for this resolved bundle, can be null
substitutedExports
- the exported packages that resolve imports for this bundle and substitute exports, can be null
resolvedRequires
- the BundleDescription
s that resolve the required bundles for this bundle, can be null
resolveImports
- the exported packages that resolve the imports for this bundle, can be null
public void resolveBundle(BundleDescription bundle, boolean status, BundleDescription[] hosts, ExportPackageDescription[] selectedExports, ExportPackageDescription[] substitutedExports, GenericDescription[] selectedCapabilities, BundleDescription[] resolvedRequires, ExportPackageDescription[] resolvedImports, GenericDescription[] resolvedCapabilities, Map<String,List<StateWire>> resolvedRequirements)
State
This method is intended to be used by resolvers in the process of determining which constraints are satisfied by which components.
resolveBundle
in interface State
bundle
- the bundle to updatestatus
- whether or not the given bundle is resolved, if false the other parameters are ignoredhosts
- the host for the resolve fragment, can be null
selectedExports
- the selected exported packages for this resolved bundle, can be null
substitutedExports
- the exported packages that resolve imports for this bundle and substitute exports, can be null
selectedCapabilities
- the selected capabilities for this resolved bundle, can be null
resolvedRequires
- the BundleDescription
s that resolve the required bundles for this bundle, can be null
resolvedImports
- the exported packages that resolve the imports for this bundle, can be null
resolvedCapabilities
- the capabilities that resolve the required capabilities for this bundle, can be null
resolvedRequirements
- the map of state wires for the resolved requirements of the given bundle. The key is the name space of the requirement.public void removeBundleComplete(BundleDescription bundle)
State
This method is intended to be used by resolvers in the process of resolving bundles.
removeBundleComplete
in interface State
bundle
- the bundle to set a removal complete.public Resolver getResolver()
State
getResolver
in interface State
public void setResolver(Resolver value)
State
To ensure that this state and the given resovler are properly linked, the following expression must be included in this method if the given resolver (value) is not identical to the result of this.getResolver().
if (this.getResolver() != value) value.setState(this);
setResolver
in interface State
public boolean setPlatformProperties(Dictionary<?,?> platformProperties)
State
The values used for the supported properties can be String type to specify a single value for the property or they can by String[] to specify a list of values for the property.
setPlatformProperties
in interface State
platformProperties
- the platform properties of the statepublic boolean setPlatformProperties(Dictionary<?,?>[] platformProperties)
State
setPlatformProperties
in interface State
platformProperties
- a set of platform properties for the stateState.setPlatformProperties(Dictionary)
public Dictionary[] getPlatformProperties()
State
getPlatformProperties
in interface State
public ExportPackageDescription linkDynamicImport(BundleDescription importingBundle, String requestedPackage)
State
null
is returned.linkDynamicImport
in interface State
importingBundle
- the BundleDescription that is requesting a dynamic packagerequestedPackage
- the name of the package that is being requestednull
is returned if none is available.public void setTimeStamp(long timeStamp)
State
setTimeStamp
in interface State
timeStamp
- the new timestamp for this statepublic ExportPackageDescription[] getSystemPackages()
State
getSystemPackages
in interface State
State.setPlatformProperties(Dictionary)
public void addResolverError(BundleDescription bundle, int type, String data, VersionConstraint unsatisfied)
State
ResolverError
for the specified bundle.
This method is intended to be used by resolvers in the process of resolving.
addResolverError
in interface State
bundle
- the bundle to add a new ResolverError
fortype
- the type of ResolverError
to adddata
- the data for the ResolverError
unsatisfied
- the unsatisfied constraint or null if the resolver error was not caused
by an unsatisfied constraint.public ResolverError[] getResolverErrors(BundleDescription bundle)
State
ResolverError
s for the given bundlegetResolverErrors
in interface State
bundle
- the bundle to get all ResolverError
s forResolverError
s for the given bundlepublic void removeResolverErrors(BundleDescription bundle)
State
ResolverError
s for the specified bundle.
This method is intended to be used by resolvers in the process of resolving.
removeResolverErrors
in interface State
bundle
- the bundle to remove all ResolverError
s forpublic StateHelper getStateHelper()
State
A possible implementation for this method would provide the same single StateHelper instance to all clients.
getStateHelper
in interface State
StateHelper
public long getHighestBundleId()
State
Note that this method returns the highest bundle ID the ever existed in this this state object. This bundle may have been removed from the state.
getHighestBundleId
in interface State
public void setNativePathsInvalid(NativeCodeDescription nativeCodeDescription, boolean hasInvalidPaths)
State
The framework, or some other entity which has access to bundle content, will call this method to validate or invalidate native code paths.
setNativePathsInvalid
in interface State
nativeCodeDescription
- the native code description.hasInvalidPaths
- true if the native code paths are invalid; false otherwise.public BundleDescription[] getDisabledBundles()
State
State.getDisabledInfos(BundleDescription)
to interrogate the reason that
each bundle is disabled.getDisabledBundles
in interface State
DisabledInfo
public void addDisabledInfo(DisabledInfo disabledInfo)
State
addDisabledInfo
in interface State
disabledInfo
- the disabled info to add.public DisabledInfo[] getDisabledInfos(BundleDescription bundle)
State
getDisabledInfos
in interface State
bundle
- the bundle to get the disabled info for.public DisabledInfo getDisabledInfo(BundleDescription bundle, String policyName)
State
null
is returned.getDisabledInfo
in interface State
bundle
- the bundle to get the disabled info forpublic void removeDisabledInfo(DisabledInfo disabledInfo)
State
removeDisabledInfo
in interface State
disabledInfo
- the disabled info to removepublic BundleDescription[] getRemovalPending()
State
getRemovalPending
in interface State
public Collection<BundleDescription> getDependencyClosure(Collection<BundleDescription> bundles)
State
A graph of bundles is computed starting with the specified bundles. The graph is expanded by adding any bundle that is either wired to a package that is currently exported by a bundle in the graph or requires a bundle in the graph. The graph is fully constructed when there is no bundle outside the graph that is wired to a bundle in the graph. The graph may contain removal pending bundles.
getDependencyClosure
in interface State
bundles
- The initial bundles for which to generate the dependency
closure.public void addDynamicImportPackages(BundleDescription importingBundle, ImportPackageSpecification[] dynamicImports)
State
addDynamicImportPackages
in interface State
importingBundle
- the bundle to add the imports to.dynamicImports
- the dynamic imports to add.BundleDescription.getAddedDynamicImportPackages()
public void setResolverHookFactory(ResolverHookFactory hookFactory)
State
setResolverHookFactory
in interface State
hookFactory
- the resolver hook factoryCopyright © 2007–2018 The Apache Software Foundation. All rights reserved.