Java Reference
In-Depth Information
4.4.1
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
PAR
file.
THE PAR
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.
■