org.apache.felix.deploymentadmin
Class AbstractDeploymentPackage

java.lang.Object
  extended by org.apache.felix.deploymentadmin.AbstractDeploymentPackage
All Implemented Interfaces:
DeploymentPackage

public abstract class AbstractDeploymentPackage
extends Object
implements DeploymentPackage

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)
           
 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()
           
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)
           
 String getName()
           
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)
           
 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)
           
 String[] getResources()
           
 Version getVersion()
           
 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()
           
 void uninstall()
           
 boolean uninstallForced()
           
 
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

emptyPackage

protected static final AbstractDeploymentPackage emptyPackage
Constructor Detail

AbstractDeploymentPackage

public AbstractDeploymentPackage(Manifest manifest,
                                 BundleContext bundleContext)
                          throws DeploymentException
Creates an instance of this class.

Parameters:
manifest - The manifest of the deployment package.
bundleContext - The bundle context.
Throws:
DeploymentException - Thrown if the specified manifest does not describe a valid deployment package.
Method Detail

getBundle

public Bundle getBundle(String symbolicName)
Specified by:
getBundle in interface DeploymentPackage

getBundleInfos

public BundleInfo[] getBundleInfos()
Specified by:
getBundleInfos in interface DeploymentPackage

getBundleInfoImpls

public BundleInfoImpl[] getBundleInfoImpls()
Returns the bundles of this deployment package as an array of BundleInfoImpl objects.

Returns:
Array containing BundleInfoImpl objects for each bundle this deployment package.

getResourceInfos

public ResourceInfoImpl[] getResourceInfos()
Returns the processed resources of this deployment package as an array of ResourceInfoImpl objects.

Returns:
Array containing ResourceInfoImpl objects for each processed resource of this deployment package.

isFixPackage

public boolean isFixPackage()
Determines whether this deployment package is a fix package.

Returns:
True if this deployment package is a fix package, false otherwise.

getHeader

public String getHeader(String header)
Specified by:
getHeader in interface DeploymentPackage

getName

public String getName()
Specified by:
getName in interface DeploymentPackage

getResourceHeader

public String getResourceHeader(String resource,
                                String header)
Specified by:
getResourceHeader in interface DeploymentPackage

getResourceProcessor

public ServiceReference getResourceProcessor(String resource)
Specified by:
getResourceProcessor in interface DeploymentPackage

getResources

public String[] getResources()
Specified by:
getResources in interface DeploymentPackage

getVersion

public Version getVersion()
Specified by:
getVersion in interface DeploymentPackage

getVersionRange

public VersionRange getVersionRange()
If this deployment package is a fix package this method determines the version range this deployment package can be applied to.

Returns:
VersionRange the fix package can be applied to or null if it is not a fix package.

isStale

public boolean isStale()
Specified by:
isStale in interface DeploymentPackage

uninstall

public void uninstall()
               throws DeploymentException
Specified by:
uninstall in interface DeploymentPackage
Throws:
DeploymentException

uninstallForced

public boolean uninstallForced()
                        throws DeploymentException
Specified by:
uninstallForced in interface DeploymentPackage
Throws:
DeploymentException

getOrderedBundleInfos

public abstract BundleInfoImpl[] getOrderedBundleInfos()
Determines the bundles of this deployment package in the order in which they were originally received.

Returns:
Array containing BundleInfoImpl objects of the bundles in this deployment package, ordered in the way they appeared when the deployment package was first received.

getOrderedResourceInfos

public abstract ResourceInfoImpl[] getOrderedResourceInfos()
Determines the resources of this deployment package in the order in which they were originally received.

Returns:
Array containing ResourceInfoImpl objects of all processed resources in this deployment package, ordered in the way they appeared when the deployment package was first received

getResourceInfoByPath

public ResourceInfoImpl getResourceInfoByPath(String path)
Determines the info about a processed resource based on it's path/resource-id.

Parameters:
path - String containing a (processed) resource path
Returns:
ResourceInfoImpl for the resource identified by the specified path or null if the path is unknown or does not describe a processed resource

getAbstractInfoByPath

protected AbstractInfo getAbstractInfoByPath(String path)
Determines the info about either a bundle or processed resource based on it's path/resource-id.

Parameters:
path - String containing a resource path (either bundle or processed resource)
Returns:
AbstractInfoImpl for the resource identified by the specified path or null if the path is unknown

getBundleInfoByPath

public BundleInfoImpl getBundleInfoByPath(String path)
Determines the info about a bundle based on it's path/resource-id.

Parameters:
path - String containing a bundle path
Returns:
BundleInfoImpl for the bundle resource identified by the specified path or null if the path is unknown or does not describe a bundle resource

getBundleInfoByName

public BundleInfoImpl getBundleInfoByName(String symbolicName)
Determines the info about a bundle resource based on the bundle symbolic name.

Parameters:
symbolicName - String containing a bundle symbolic name
Returns:
BundleInfoImpl for the bundle identified by the specified symbolic name or null if the symbolic name is unknown

getBundleStream

public abstract InputStream getBundleStream(String symbolicName)
                                     throws IOException
Determines the data stream of a bundle resource based on the bundle symbolic name

Parameters:
symbolicName - Bundle symbolic name
Returns:
Stream to the bundle identified by the specified symbolic name or null if no such bundle exists in this deployment package.
Throws:
IOException - If the bundle can not be properly offered as an inputstream

getNextEntry

public abstract AbstractInfo getNextEntry()
                                   throws IOException
Determines the next resource entry in this deployment package based on the order in which the resources appeared when the package was originally received.

Returns:
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
Throws:
IOException - if the next entry can not be properly determined

getCurrentEntryStream

public abstract InputStream getCurrentEntryStream()
Determines the data stream to the current entry of this deployment package, use this together with the getNextEntry method.

Returns:
Stream to the current resource in the deployment package (as determined by the order in which the deployment package was received originally) or null if there is no entry


Copyright © 2006-2011 Apache Software Foundation. All Rights Reserved.