<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" type="text/css" href="css/html.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 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"><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"><div><div><div><h1 class="title"><a name="d21e223"></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 class="xref" href="blueprint.html" title="Chapter&nbsp;6.&nbsp;OSGi 4.2 Blueprint Container">Chapter&nbsp;6, <i>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 class="xref" href="bnd-app-ctx.html" title="Chapter&nbsp;7.&nbsp;Bundles and Application Contexts">Chapter&nbsp;7, <i>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 class="xref" href="app-deploy.html" title="Chapter&nbsp;8.&nbsp;Packaging and Deploying Spring-based OSGi applications">Chapter&nbsp;8, <i>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 class="xref" href="service-registry.html" title="Chapter&nbsp;9.&nbsp;The Service Registry">Chapter&nbsp;9, <i>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 class="xref" href="bundles.html" title="Chapter&nbsp;10.&nbsp;Working With Bundles">Chapter&nbsp;10, <i>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 class="xref" href="compendium.html" title="Chapter&nbsp;11.&nbsp;Compendium Services">Chapter&nbsp;11, <i>Compendium Services</i></a> describes the support provided
      for the <a class="ulink" href="http://www2.osgi.org/Release4/Download" target="_top">OSGi
      Compendium Services</a>, specifically the Configuration Admin
      service.</p>
      
      <p><a class="xref" href="testing.html" title="Chapter&nbsp;12.&nbsp;Testing OSGi based Applications">Chapter&nbsp;12, <i>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>