Spring plan and PAR files
The SpringSource dm Server runtime, which has now become the Eclipse Virgo proj-
ect, was one of the first server runtimes that could host OSG i applications, and so it
also encountered the limitations of the OSG i bundle as an artifact for application
packaging. The first versions of dm Server allowed applications to be deployed as a
In many senses a PAR file is like an EBA : it's a JAR file archive that contains a collection
of OSG i bundles. In a way similar to an EBA , the PAR file defines an application scope.
When the bundles in a PAR are deployed into an OSG i framework, they're isolated from
other bundles in the runtime. Where the PAR file differs from the EBA is as follows:
A PAR file doesn't provide metadata to allow bundles to be provisioned from
elsewhere; they must be contained within the PAR file, increasing its size.
When a PAR file is deployed into an OSG i framework, it doesn't allow for shared
content to be deployed around it.
Missing dependencies within a PAR aren't guaranteed to be satisfied when it's
installed; this means that the only safe way to write a PAR that's portable across
runtimes would be to contain all of your dependencies.
In an effort to improve upon the PAR file, later versions of dm Server added support
for a new application descriptor known as a plan file .
THE PLAN FILE
To maintain a level of backward compatibility with PAR files, and to reduce cognitive
load on developers, a plan file is similar in concept to a PAR file, and also to an EBA .
Compared to a PAR file, though, a plan file goes to the opposite extreme, so where a
PAR file must contain all its bundles, a plan file contains none!
A plan file is an XML descriptor for an OSG i application that has a .plan exten-
sion. Like a PAR file, it describes a collection of bundles; however, a plan file may
also refer to other plan files or PAR files as sources of content. Plan files also loosen
the scoping restriction of PAR files, in that a plan file need not isolate its bundles
within the OSG i framework.
Interestingly, a plan file shares many characteristics with an EBA , but different ones
than a PAR file shares with an EBA . Several key differences are these:
A plan file doesn't provide any mechanism to allow bundles to be provided
within the archive. All bundles, no matter how private, esoteric, or customized,
must be made available in a centralized repository, either as the bundle itself, or
within a PAR . There's also no way to easily provide a single artifact to machines
with limited network connectivity.
When a plan file is deployed into an OSG i framework, it may define shared con-
tent and use PAR files to provide isolated sections of the application, but this
does require the generation of multiple deployment artifacts.
Search WWH ::