The Application-ManifestVersion: 1.0 header and value is required by the
enterprise OSG i runtime to recognize this file as an application manifest. Don't
worry that it might be out of date; at the time of writing only version 1.0 exists,
and there are no plans to add a new version.
If the idea of writing EBA manifests by hand doesn't appeal, don't worry—the Apache
Aries project has developed a Maven plug-in, called the eba-maven-plugin, that gen-
erates EBA archives. We'll show it in detail in section 8.2.5, along with the other build
tools. The Aries project is also working on an esa-maven-plugin for generating subsys-
The other important information in listing 4.2 has to do with the application:
Applications are easier to recognize if they have a human-readable name. This
is added using the Application-Name: header. In this case, the name of your
application is The Fancy Foods online superstore .
It's also important to provide a unique name for your application that won't
clash with others. This is like a bundle's symbolic name, so unsurprisingly it uses
the Application-SymbolicName: header to call your application fancy-
Finally, it's vital to version your application. This, in conjunction with the appli-
cation's symbolic name, provides a unique identifier just like a bundle. You'll
use the Application-Version: header to version your application 1.0.0 .
Application symbolic names
Application symbolic names are exactly like bundle symbolic names. In fact, they are
so similar that applications and bundles share the same namespace and can be con-
fused in the OSGi framework. Because these names can clash, you should be careful
when naming your application. It's easy to give the application the same name as
one of your bundles, at which point you often have a painful debugging job before a
rather embarrassing aha! moment...
If you add this manifest to the EBA from section zero metadata EBA at the location
META-INF / APPLICATION.MF you end up with another deployable EBA . Feel free to try
the new application; there should no difference at runtime, but more advanced stacks
will display a sensible name for your application.
You're starting to get somewhere now, but you're still relying on defaulting to
determine the structure of your application. It's time to take a deeper look at how
your application fits together.
Search WWH ::