We're sure you're eager to get going playing with real code, so we'll begin by intro-
ducing our sample application and letting you get your hands dirty with a handy
The development sandbox
In the succeeding chapters, we'll build up a small sample enterprise application, the
Fancy Foods web store. By the end of the topic, the Fancy Foods application will have
a web frontend, a database backend, and transactional purchasing. Its modules will be
wired to one another using dependency injection, and packaged together as an
Before you get started writing this application, you'll need a way to run it. Enterprise
OSG i is a programming model, not a product, so there are lots of ways of running an
enterprise OSG i application. Several open source and commercial application servers
support enterprise OSG i, and we'll discuss some of the available platforms in chapter 13.
As a starting point, the Apache Aries project provides a simple runtime with their sam-
ples. We think this is one of the best ways of getting going with enterprise OSG i.
Introducing Apache Aries
The open source community has been quick to respond to the OSG i Enterprise Speci-
fication with implementations. (At least some of these implementations were in place
before the Enterprise Specification was released, and the implementation experience
guided the final shape of the specification.) Open source enterprise OSG i implemen-
tations are available from both the Eclipse Foundation and the Apache Source Foun-
dation, and many other implementations are available elsewhere. The primary
enterprise OSG i project in Eclipse is called Eclipse Gemini, and in Apache the project
is known as Apache Aries. These projects have the express aim of providing a set of
reusable OSG i components that can be used as the basis of an enterprise OSG i pro-
ARIES AND THE OSGI ENTERPRISE SPECIFICATION
Apache Aries (see figure 2.1) also provides some extensions to what's included in the
OSG i Enterprise Specification, and at least some of these extensions have been
wrapped back into release 5. For example, Aries provides fuller container manage-
ment of persistence and transactions. It also provides a new application-level (rather
than bundle-level) granularity that wasn't available in the first release of the enterprise
OSG i specification.
These extensions are tremendously useful and make what's provided by enterprise
OSG i map more closely to what's in JEE . Apache Aries also has a number of other benefits
that make it a nice place to start learning enterprise OSG i. It has a helpful users' mailing
list and an active development community. It can be consumed in a number of forms.
The JAR s can be downloaded as-is and dropped into any OSG i framework. Aries is also
integrated into several existing application servers. Both Apache Geronimo and IBM 's
WebSphere Application Server provide an OSG i programming model based on Aries.