ResourceProcessor interface is implemented by processors handling resource
files in deployment packages. Resource Processors expose their services as
standard OSGi services. Bundles exporting the service may arrive in the
deployment package (customizers) or may be preregistered (they are installed
previously). Resource processors has to define the service.pid
standard OSGi service property which should be a unique string.

The order of the method calls on a particular Resource Processor in case of
install/update session is the following:

Called when the Deployment Admin starts a new operation on the given
deployment package, and the resource processor is associated a resource
within the package. Only one deployment package can be processed at a
time.

Parameters:

session object that represents the current session to the resource
processor

Called when a resource, associated with a particular resource processor,
had belonged to an earlier version of a deployment package but is not
present in the current version of the deployment package. This provides
an opportunity for the processor to cleanup any memory and persistent
data being maintained for the particular resource. This method will only
be called during "update" deployment sessions.

Parameters:

resource the name of the resource to drop (it is the same as the
value of the "Name" attribute in the deployment package's
manifest)

This method is called during an "uninstall" deployment session. This
method will be called on all resource processors that are associated with
resources in the deployment package being uninstalled. This provides an
opportunity for the processor to cleanup any memory and persistent data
being maintained for the deployment package.

This method is called on the Resource Processor immediately before
calling the commit method. The Resource Processor has to check
whether it is able to commit the operations since the last begin
method call. If it determines that it is not able to commit the changes,
it has to raise a ResourceProcessorException with the
ResourceProcessorException.CODE_PREPARE error code.

Called when the processing of the current deployment package is finished.
This method is called if the processing of the current deployment package
was successful, and the changes must be made permanent.

Called when the processing of the current deployment package is finished.
This method is called if the processing of the current deployment package
was unsuccessful, and the changes made during the processing of the
deployment package should be removed.

Processing of a resource passed to the resource processor may take long.
The cancel() method notifies the resource processor that it
should interrupt the processing of the current resource. This method is
called by the DeploymentAdmin implementation after the
DeploymentAdmin.cancel() method is called.