<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>Part&nbsp;II.&nbsp;Reference Documentation</title><link rel="stylesheet" href="css/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.72.0"><link rel="start" href="index.html" title="Eclipse Gemini Blueprint Reference Guide"><link rel="up" href="index.html" title="Eclipse Gemini Blueprint Reference Guide"><link rel="prev" href="what-is-new.html" title="Chapter&nbsp;5.&nbsp;What is new?"><link rel="next" href="blueprint.html" title="Chapter&nbsp;6.&nbsp;OSGi 4.2 Blueprint Container"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="reference"></a>Part&nbsp;II.&nbsp;Reference Documentation</h1></div></div></div><div class="partintro" lang="en"><div><div><div><h1 class="title"><a name="d18e423"></a>Document structure</h1></div></div></div><p>This part of the reference documentation explains the core functionality
	  offered by Gemini Blueprint.</p><p><a href="blueprint.html" title="Chapter&nbsp;6.&nbsp;OSGi 4.2 Blueprint Container">Chapter&nbsp;6, <i xmlns:xlink="http://www.w3.org/1999/xlink">OSGi 4.2 Blueprint Container</i></a> describes the relationship between Spring DM and OSGi 4.2
      Blueprint Container specification (part of the Compendium Services) and the similiarities and
      differences between them.</p><p><a href="bnd-app-ctx.html" title="Chapter&nbsp;7.&nbsp;Bundles and Application Contexts">Chapter&nbsp;7, <i xmlns:xlink="http://www.w3.org/1999/xlink">Bundles and Application Contexts</i></a> describes the relationship between an OSGi Bundle and a 
      Spring Application Context,
      and introduces the Spring Extender Bundle support for instantiating
      application contexts automatically.</p><p><a href="app-deploy.html" title="Chapter&nbsp;8.&nbsp;Packaging and Deploying Spring-based OSGi applications">Chapter&nbsp;8, <i xmlns:xlink="http://www.w3.org/1999/xlink">Packaging and Deploying Spring-based OSGi applications</i></a> describes how to deploy the Spring Framework jar files in
      an OSGi environment, and how to reference external APIs from your
      application bundles should you need to do so. This chapter also explains
      some of the issues to be aware of when using existing enterprise
      libraries not designed for OSGi in an OSGi environment.</p><p><a href="service-registry.html" title="Chapter&nbsp;9.&nbsp;The Service Registry">Chapter&nbsp;9, <i xmlns:xlink="http://www.w3.org/1999/xlink">The Service Registry</i></a> describes how to export Spring
      beans as services in the OSGi service registry, and how to inject
      references to OSGi services into beans. This chapter also defines how
      the dynamic life-cycle of OSGi services and bundles is supported.</p><p><a href="bundles.html" title="Chapter&nbsp;10.&nbsp;Working With Bundles">Chapter&nbsp;10, <i xmlns:xlink="http://www.w3.org/1999/xlink">Working With Bundles</i></a> describes how to declare a bean
      that represents an OSGi bundle, including support for installing new
      bundles into the OSGi platform.</p><p><a href="compendium.html" title="Chapter&nbsp;11.&nbsp;Compendium Services">Chapter&nbsp;11, <i xmlns:xlink="http://www.w3.org/1999/xlink">Compendium Services</i></a> describes the support provided
      for the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www2.osgi.org/Release4/Download" target="_top">OSGi
      Compendium Services</a>, specifically the Configuration Admin
      service.</p><p><a href="testing.html" title="Chapter&nbsp;12.&nbsp;Testing OSGi based Applications">Chapter&nbsp;12, <i xmlns:xlink="http://www.w3.org/1999/xlink">Testing OSGi based Applications</i></a> explains the
      integration testing support provided by Gemini Blueprint. This
      support enables you to write simple JUnit integration tests that can
      start up an OSGi environment, install the bundles needed for the
      integration test, execute the test case(s) inside of OSGi, and return
      the results to the runner. This makes it easy to integrate OSGi
      integration testing into any environment that can work with
      JUnit.</p></div></div><div xmlns:fo="http://www.w3.org/1999/XSL/Format" class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="what-is-new.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="blueprint.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;5.&nbsp;What is new?&nbsp;</td><td width="20%" align="center"><span style="color:white;font-size:90%;"><a href="http://www.SpringSource.com/" title="SpringSource - Spring from the Source">Sponsored by SpringSource
                                        </a></span></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;6.&nbsp;OSGi 4.2 Blueprint Container</td></tr></table></div></body></html>