|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.felix.deploymentadmin.AbstractDeploymentPackage
public abstract class AbstractDeploymentPackage
Base class for various types of deployment packages. Indifferent in regard to how the deployment package data is obtained, this should be handled by extending classes.
Field Summary | |
---|---|
protected static AbstractDeploymentPackage |
emptyPackage
|
Fields inherited from interface org.osgi.service.deploymentadmin.DeploymentPackage |
---|
EVENT_DEPLOYMENTPACKAGE_CURRENTVERSION, EVENT_DEPLOYMENTPACKAGE_NAME, EVENT_DEPLOYMENTPACKAGE_NEXTVERSION, EVENT_DEPLOYMENTPACKAGE_READABLENAME |
Constructor Summary | |
---|---|
AbstractDeploymentPackage(Manifest manifest,
BundleContext bundleContext)
Creates an instance of this class. |
Method Summary | |
---|---|
protected AbstractInfo |
getAbstractInfoByPath(String path)
Determines the info about either a bundle or processed resource based on it's path/resource-id. |
Bundle |
getBundle(String symbolicName)
Returns the bundle instance, which is part of this deployment package, that corresponds to the bundle's symbolic name passed in the symbolicName parameter. |
BundleInfoImpl |
getBundleInfoByName(String symbolicName)
Determines the info about a bundle resource based on the bundle symbolic name. |
BundleInfoImpl |
getBundleInfoByPath(String path)
Determines the info about a bundle based on it's path/resource-id. |
BundleInfoImpl[] |
getBundleInfoImpls()
Returns the bundles of this deployment package as an array of BundleInfoImpl objects. |
BundleInfo[] |
getBundleInfos()
Returns an array of BundleInfo objects representing the bundles
specified in the manifest of this deployment package. |
abstract InputStream |
getBundleStream(String symbolicName)
Determines the data stream of a bundle resource based on the bundle symbolic name |
abstract InputStream |
getCurrentEntryStream()
Determines the data stream to the current entry of this deployment package, use this together with the getNextEntry method. |
String |
getHeader(String header)
Returns the requested deployment package manifest header from the main section. |
String |
getName()
Returns the Deployment Package Symbolic Name of the package. |
abstract AbstractInfo |
getNextEntry()
Determines the next resource entry in this deployment package based on the order in which the resources appeared when the package was originally received. |
abstract BundleInfoImpl[] |
getOrderedBundleInfos()
Determines the bundles of this deployment package in the order in which they were originally received. |
abstract ResourceInfoImpl[] |
getOrderedResourceInfos()
Determines the resources of this deployment package in the order in which they were originally received. |
String |
getResourceHeader(String resource,
String header)
Returns the requested deployment package manifest header from the name section determined by the resource parameter. |
ResourceInfoImpl |
getResourceInfoByPath(String path)
Determines the info about a processed resource based on it's path/resource-id. |
ResourceInfoImpl[] |
getResourceInfos()
Returns the processed resources of this deployment package as an array of ResourceInfoImpl objects. |
ServiceReference |
getResourceProcessor(String resource)
At the time of deployment, resource processor service instances are located to resources contained in a deployment package. |
String[] |
getResources()
Returns an array of strings representing the resources (including bundles) that are specified in the manifest of this deployment package. |
Version |
getVersion()
Returns the version of the deployment package. |
VersionRange |
getVersionRange()
If this deployment package is a fix package this method determines the version range this deployment package can be applied to. |
boolean |
isFixPackage()
Determines whether this deployment package is a fix package. |
boolean |
isStale()
Gives back the state of the deployment package whether it is stale or not). |
void |
uninstall()
Uninstalls the deployment package. |
boolean |
uninstallForced()
This method is called to completely uninstall a deployment package, which couldn't be uninstalled using traditional means ( DeploymentPackage.uninstall() )
due to exceptions. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.osgi.service.deploymentadmin.DeploymentPackage |
---|
equals, getDisplayName, getIcon, hashCode |
Field Detail |
---|
protected static final AbstractDeploymentPackage emptyPackage
Constructor Detail |
---|
public AbstractDeploymentPackage(Manifest manifest, BundleContext bundleContext) throws DeploymentException
manifest
- The manifest of the deployment package.bundleContext
- The bundle context.
DeploymentException
- Thrown if the specified manifest does not describe a valid deployment package.Method Detail |
---|
public Bundle getBundle(String symbolicName)
DeploymentPackage
symbolicName
parameter. This method will return null for
request for bundles that are not part of this deployment package.
As this instance is transient (i.e. a bundle can be removed at any time because of the dynamic nature of the OSGi platform), this method may also return null if the bundle is part of this deployment package, but is not currently defined to the framework.
getBundle
in interface DeploymentPackage
symbolicName
- the symbolic name of the requested bundle
Bundle
instance for a given bundle symbolic
name.public BundleInfo[] getBundleInfos()
DeploymentPackage
BundleInfo
objects representing the bundles
specified in the manifest of this deployment package. Its size is equal
to the number of the bundles in the deployment package.
getBundleInfos
in interface DeploymentPackage
BundleInfo
objectspublic BundleInfoImpl[] getBundleInfoImpls()
BundleInfoImpl
objects.
BundleInfoImpl
objects for each bundle this deployment package.public ResourceInfoImpl[] getResourceInfos()
ResourceInfoImpl
objects.
ResourceInfoImpl
objects for each processed resource of this deployment package.public boolean isFixPackage()
public String getHeader(String header)
DeploymentPackage
If the header is localized then the localized value is returned (see OSGi Service Platform, Mobile Specification Release 4 - Localization related chapters).
getHeader
in interface DeploymentPackage
header
- the requested header
null
if the header does
not existpublic String getName()
DeploymentPackage
getName
in interface DeploymentPackage
public String getResourceHeader(String resource, String header)
DeploymentPackage
If the header is localized then the localized value is returned (see OSGi Service Platform, Mobile Specification Release 4 - Localization related chapters).
getResourceHeader
in interface DeploymentPackage
resource
- the name of the resource (it is the same as the value of the
"Name" attribute in the deployment package's manifest)header
- the requested header
null
if the resource or
the header doesn't existpublic ServiceReference getResourceProcessor(String resource)
DeploymentPackage
This call returns a service reference to the corresponding service instance. If the resource is not part of the deployment package or this call is made during deployment, prior to the locating of the service to process a given resource, null will be returned. Services can be updated after a deployment package has been deployed. In this event, this call will return a reference to the updated service, not to the instance that was used at deployment time.
getResourceProcessor
in interface DeploymentPackage
resource
- the name of the resource (it is the same as the value of the
"Name" attribute in the deployment package's manifest)
null
.public String[] getResources()
DeploymentPackage
E.g. if the "Name" section of the resource (or individual-section as the Manifest Specification calls it) in the manifest is the following
Name: foo/readme.txt Resource-Processor: foo.rpthen the corresponding array element is the "foo/readme.txt" string.
getResources
in interface DeploymentPackage
public Version getVersion()
DeploymentPackage
getVersion
in interface DeploymentPackage
public VersionRange getVersionRange()
VersionRange
the fix package can be applied to or null
if it is not a fix package.public boolean isStale()
DeploymentPackage
IllegalStateException
. Active methods are the following:
DeploymentPackage.getBundle(String)
DeploymentPackage.getResourceProcessor(String)
DeploymentPackage.uninstall()
DeploymentPackage.uninstallForced()
isStale
in interface DeploymentPackage
true
if the deployment package is stale.
false
otherwiseDeploymentPackage.uninstall()
,
DeploymentPackage.uninstallForced()
public void uninstall() throws DeploymentException
DeploymentPackage
DeploymentPackage.isStale()
, which will return true
when stale.
uninstall
in interface DeploymentPackage
DeploymentException
- if the deployment package could not be successfully
uninstalled. For detailed error code description see
DeploymentException
.public boolean uninstallForced() throws DeploymentException
DeploymentPackage
DeploymentPackage.uninstall()
)
due to exceptions. After uninstallation, the deployment package object
becomes stale. This can be checked by using DeploymentPackage.isStale()
, which
will return true
when stale.
The method forces removal of the Deployment Package from the repository
maintained by the Deployment Admin service. This method follows the same
steps as DeploymentPackage.uninstall()
. However, any errors or the absence of
Resource Processor services are ignored, they must not cause a roll back.
These errors should be logged.
uninstallForced
in interface DeploymentPackage
DeploymentException
- only DeploymentException.CODE_TIMEOUT
and
DeploymentException.CODE_CANCELLED
can be thrown. For
detailed error code description see
DeploymentException
.public abstract BundleInfoImpl[] getOrderedBundleInfos()
BundleInfoImpl
objects of the bundles in this deployment package, ordered in the way they appeared when the deployment package was first received.public abstract ResourceInfoImpl[] getOrderedResourceInfos()
ResourceInfoImpl
objects of all processed resources in this deployment package, ordered in the way they appeared when the deployment package was first receivedpublic ResourceInfoImpl getResourceInfoByPath(String path)
path
- String containing a (processed) resource path
ResourceInfoImpl
for the resource identified by the specified path or null if the path is unknown or does not describe a processed resourceprotected AbstractInfo getAbstractInfoByPath(String path)
path
- String containing a resource path (either bundle or processed resource)
AbstractInfoImpl
for the resource identified by the specified path or null if the path is unknownpublic BundleInfoImpl getBundleInfoByPath(String path)
path
- String containing a bundle path
BundleInfoImpl
for the bundle resource identified by the specified path or null if the path is unknown or does not describe a bundle resourcepublic BundleInfoImpl getBundleInfoByName(String symbolicName)
symbolicName
- String containing a bundle symbolic name
BundleInfoImpl
for the bundle identified by the specified symbolic name or null if the symbolic name is unknownpublic abstract InputStream getBundleStream(String symbolicName) throws IOException
symbolicName
- Bundle symbolic name
IOException
- If the bundle can not be properly offered as an inputstreampublic abstract AbstractInfo getNextEntry() throws IOException
AbstractInfo
describing the next resource entry (as determined by the order in which the deployment package was received originally) or null if there is no next entry
IOException
- if the next entry can not be properly determinedpublic abstract InputStream getCurrentEntryStream()
getNextEntry
method.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |