Revert "Clean up old sub-project branches only there because of SVN"

This reverts commit cc28b9f478268d89bf271a2f7994172d10a6eb4f.
diff --git a/blueprint/.htaccess b/blueprint/.htaccess
new file mode 100644
index 0000000..210876c
--- /dev/null
+++ b/blueprint/.htaccess
@@ -0,0 +1,2 @@
+RewriteEngine On
+RewriteRule	  ^(.*)    http://www.eclipse.org/blueprint [R,L]
\ No newline at end of file
diff --git a/blueprint/.project b/blueprint/.project
new file mode 100644
index 0000000..1bf5ab3
--- /dev/null
+++ b/blueprint/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>blueprint</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/blueprint/_projectCommon.php b/blueprint/_projectCommon.php
new file mode 100755
index 0000000..f85c2f7
--- /dev/null
+++ b/blueprint/_projectCommon.php
@@ -0,0 +1,61 @@
+<?php
+
+/*******************************************************************************
+ * Copyright (c) 2009 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    
+ *******************************************************************************/
+
+	# Set the theme for your project's web pages.
+	# See http://eclipse.org/phoenix/
+	$theme = "Nova";
+	
+
+	# Define your project-wide Navigation here
+	# This appears on the left of the page if you define a left nav
+	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
+	# these are optional
+	
+	# If you want to override the eclipse.org navigation, uncomment below.
+	# $Nav->setLinkList(array());
+	
+	# Break the navigation into sections
+	$Nav->addNavSeparator("Gemini Blueprint Home", 	"/gemini/blueprint");
+	$Nav->addCustomNav("About This Project","/projects/project_summary.php?projectid=rt.gemini.blueprint", "_self", 3);
+	$Nav->addCustomNav("Download", "/gemini/blueprint/download", "_self", 3);
+	$Nav->addCustomNav("Documentation", "/gemini/blueprint/documentation", "_self", 3);
+	$Nav->addCustomNav("Support", "/gemini/blueprint/support", "_self", 3);
+	$Nav->addCustomNav("Getting Involved", "/gemini/blueprint/contribute", "_self", 3);
+	$Nav->addCustomNav("History", "/gemini/blueprint/history", "_self", 3);
+	$Nav->addCustomNav("Gemini Home", 	"/gemini/blueprint");
+
+
+	# Define keywords, author and title here, or in each PHP page specifically
+	$pageKeywords	= "eclipse, osgi, blueprint, spring, ioc, dynamic, services, rfc-124";
+	$pageAuthor		= "Costin Leau";
+	$pageTitle 		= "Eclipse Gemini Blueprint - Incubation";
+
+
+	# top navigation bar
+	# To override and replace the navigation with your own, uncomment the line below.
+	# $Menu->setMenuItemList(array());
+	# $Menu->addMenuItem("Home", "/project", "_self");
+	# $Menu->addMenuItem("Download", "/project/download.php", "_self");
+	# $Menu->addMenuItem("Documentation", "/project/documentation.php", "_self");
+	# $Menu->addMenuItem("Support", "/project/support.php", "_self");
+	# $Menu->addMenuItem("Developers", "/project/developers", "_self");
+	
+	# To define additional CSS or other pre-body headers
+	$App->AddExtraHtmlHeader('<link media="screen" rel="stylesheet" type="text/css" href="/gemini/blueprint/resources/local.css"/>');
+	
+	# To enable occasional Eclipse Foundation Promotion banners on your pages (EclipseCon, etc)
+	$App->Promotion = TRUE;
+	
+	# If you have Google Analytics code, use it here
+	$App->SetGoogleAnalyticsTrackingCode("UA-2728886-3");
+?>
\ No newline at end of file
diff --git a/blueprint/about/index.php b/blueprint/about/index.php
new file mode 100644
index 0000000..009d54d
--- /dev/null
+++ b/blueprint/about/index.php
@@ -0,0 +1,44 @@
+<?php
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	
+	$App 	= new App();	
+	$Nav	= new Nav();	
+	$Menu 	= new Menu();		
+	include($App->getProjectCommon());
+	
+/*******************************************************************************
+ * Copyright (c) 2009 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Christopher Frost
+ *               Mike Keith
+ *    
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "About Gemini Blueprint";
+	$pageKeywords	= "Eclipse, EclipseRT, Gemini, OSGi, History, origin, origins, about";
+	$pageAuthor		= "Costin Leau";
+		
+	ob_start();
+?>
+	
+	<div id="midcolumn">
+		<h2>About Gemini Blueprint</h2>
+		<p>
+		    Eclipse Gemini Blueprint project makes it easy to build Java applications that run in an OSGi framework. By using Gemini Blueprint, applications benefit from using a better separation 
+		    of modules, the ability to dynamically add, remove, and update modules in a running system, the ability to deploy multiple versions of a module simultaneously 
+		    (and have clients automatically bind to the appropriate one), and a dynamic service model.<br/>
+			Eclipse Gemini Blueprint is the reference implementation for the <a href="http://www.osgi.org">OSGi Alliance</a> Blueprint Service (chapter 121 of the OSGi 4.2 Compendium Specification). 
+		</p>
+	</div>
+
+<?
+	$html = ob_get_clean();
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
diff --git a/blueprint/contribute/_index.html b/blueprint/contribute/_index.html
new file mode 100644
index 0000000..05f99b4
--- /dev/null
+++ b/blueprint/contribute/_index.html
@@ -0,0 +1,29 @@
+<div id="midcolumn">
+	<h2>Developers, want to contribute ?</h2>
+	<p>
+		<a href="http://www.eclipse.org/gemini/blueprint/download">Download</a> Gemini Blueprint and take it for a spin.
+		Read the <a href="http://www.eclipse.org/gemini/blueprint/documentation">docs</a>. Check out and build the code. Then tweet, blog, or post to the 
+		<a href="https://dev.eclipse.org/mailman/listinfo/gemini-dev"> developer mailing list</a> It's as simple as that. 
+		Maybe later you'll want to file 
+		<a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;order=Importance;product=Gemini.Blueprint">
+		bugs</a> or send in patches to the docs and code.
+	</p>
+	
+	<p>
+		All of our source code resides in git:
+		<ul>
+			<li>
+				Web access: <a href="http://git.eclipse.org/c/gemini.blueprint/org.eclipse.gemini.blueprint.git/tree">http://git.eclipse.org/c/gemini.blueprint/org.eclipse.gemini.blueprint.git/tree</a>
+			</li>
+			<li>
+				Anonymous: git clone git://git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git
+			</li>
+			<li>
+				Committers: git clone ssh://committer_id@git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git
+			</li>
+		</ul>
+		Note that this git repository should also be mirrored in the future at github: <a href="https://github.com/eclipse/gemini.blueprint">https://github.com/eclipse/gemini.blueprint</a>.
+	</p>
+
+</div>
+
diff --git a/blueprint/contribute/index.php b/blueprint/contribute/index.php
new file mode 100644
index 0000000..644fbf2
--- /dev/null
+++ b/blueprint/contribute/index.php
@@ -0,0 +1,30 @@
+<?php
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	
+	$App 	= new App();	
+	$Nav	= new Nav();	
+	$Menu 	= new Menu();		
+	include($App->getProjectCommon());
+	
+/*******************************************************************************
+ * Copyright (c) 2009 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ *   Costin Leau, VMware
+ *    
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "Gemini OSGi Blueprint - Contribute";
+	
+	// 	# Paste your HTML content between the EOHTML markers!
+	$html = file_get_contents('_index.html');
+
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
diff --git a/blueprint/documentation/_index.html b/blueprint/documentation/_index.html
new file mode 100644
index 0000000..c1b76f9
--- /dev/null
+++ b/blueprint/documentation/_index.html
@@ -0,0 +1,23 @@
+<div id="midcolumn">
+	
+	<p>
+	  <ul>
+		<li>Reference <a href="http://www.eclipse.org/gemini/blueprint/documentation/reference/1.0.1.RELEASE/html/index.html">documentation</a></li>
+		<li><a href="http://www.eclipse.org/gemini/blueprint/documentation/reference/1.0.1.RELEASE/html/faq.html">FAQ</a></li>
+      </ul>
+	</p>
+	<p>
+		The docs for <a href="http://www.springsource.org/osgi">Spring Dynamic Modules</a> 2.0 M1 release (for completeness) are available here:
+		<ul>
+			<li>Reference documentation ( <a href="http://static.springframework.org/osgi/docs/2.0.0.M1/reference/html/">HTML</a> | 
+			 <a href="http://static.springframework.org/osgi/docs/2.0.0.M1/reference/html-single/">HTML Single</a> |
+			 <a href="http://static.springframework.org/osgi/docs/2.0.0.M1/reference/pdf/spring-dm-reference.pdf">PDF</a> )</li>
+			<li><a href="http://static.springframework.org/osgi/docs/2.0.0.M1/reference/html/faq.html">FAQ</a></li>
+			<li>Known <a href="http://static.springframework.org/spring-osgi/docs/2.0.0.M1/reference/html/issues.html">Issues</a></li>
+		</ul>
+	</p>
+	
+	<p>For migrating from Spring DM to Gemini Blueprint, see this <a href="migration">guide</a>.</p>
+</div>
+
+
diff --git a/blueprint/documentation/index.php b/blueprint/documentation/index.php
new file mode 100644
index 0000000..2663908
--- /dev/null
+++ b/blueprint/documentation/index.php
@@ -0,0 +1,30 @@
+<?php
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	
+	$App 	= new App();	
+	$Nav	= new Nav();	
+	$Menu 	= new Menu();		
+	include($App->getProjectCommon());
+	
+/*******************************************************************************
+ * Copyright (c) 2009 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ *   Costin Leau, VMware
+ *    
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "Gemini OSGi Blueprint - Documentation";
+	
+	// 	# Paste your HTML content between the EOHTML markers!
+	$html = file_get_contents('_index.html');
+
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
diff --git a/blueprint/documentation/migration/_index.html b/blueprint/documentation/migration/_index.html
new file mode 100644
index 0000000..720fc09
--- /dev/null
+++ b/blueprint/documentation/migration/_index.html
@@ -0,0 +1,67 @@
+<div id="midcolumn">
+	<h1>Migrating from Spring Dynamic Modules to Eclipse Gemini Blueprint</h1>
+	
+	
+	<p>This guide is aimed at helping developers using Spring DM in their application to migrate to Eclipse Gemini Blueprint. Note that the migration 
+	to the Eclipse Foundation is not yet complete and this document might not reflect all the changes that occurred in the process. See the 
+	support page for more info on getting accurate information.</p>
+	
+	<h3>Overview</h3>
+	<p>Gemini Blueprint was created through the migration of Spring Dynamic Modules to the Eclipse Foundation. While certain things have
+	changed in the process, mainly to reflect the new project name and hosting infrastructure, the project architecture, ideas, code base and dependencies
+	have remained intact. Use this to your advantage when encountering errors, by looking first for references to 'old' packages or classes as these are likely
+	to be the problem in the vast majority of cases.
+	</p>
+	
+	<h2>1.0.0.RC1</h2>
+	
+	<h3>Changed Package Name</h3>
+	<p>The most disruptive change for Spring DM users when transitioning to Gemini Blueprint is the renaming of the project packages: 
+	from <tt>org.springframework.osgi</tt> to <tt>org.eclipse.gemini.blueprint</tt>. If you are referring to the Spring DM classes, in any way,
+	either inside Java code or XML configuration, you need to update the package.<br/>
+	The actual class names and method signatures have <b>not</b> been changed so in most cases the changed can be accommodated through a simple "search & replace"
+	operation.<br/>
+	Note that for configuration purposes, one can shield itself from the package change by relying on the Spring DM/Eclipse Gemini Blueprint namespaces 
+	which hide the actual classes used for configuring, making the change transparent.	 
+	</p>
+	
+	<h3>Changed Exported Packages (Versions Included)</h3>
+	<p>Inherent to the package name changes, the artifact manifests have been updated as well. Besides changing the imported package names as indicated above, consumers should modify
+	the imported version to <tt>1.0.0</tt> (or <tt>1.0.0.M1</tt> for wiring only to the M1 artifact).
+	
+	<h3>Deprecated Namespace/Schema Location</h3>
+	<p>The existing Spring DM schema definition (named <tt>spring-osgi.xsd</tt> and located at <tt>http://www.springframework.org/schema/osgi</tt>) are still available and supported
+	by Eclipse Gemini Blueprint. However we recommend users to migrate to the newly added schemas at <tt>http://www.eclipse.org/gemini/blueprint/schema/blueprint/gemini-blueprint.xsd</tt>
+	and <tt>http://www.eclipse.org/gemini/blueprint/schema/blueprint-compendium/gemini-blueprint-compendium.xsd</tt>. Except for the schema location, the new schemas are identical to the
+	old ones and will be the target of any new improvements and further development.</p>
+	
+	<h3>Deprecated Spring-DM specific service properties</h3>
+	<p>Similar to the schema deprecation, the Spring-DM specific properties on exported services (such as <tt>org.springframework.osgi.bean.name</tt>) have been deprecated. While they are still supported
+	users are recommended to use the newly introduced Gemini Blueprint props (simply replace <tt>org.sprinframework.osgi</tt> prefix with <tt>org.eclipse.gemini.blueprint</tt>).</p>
+	
+	<h3>Removed deprecated classes</h3>
+	<p>During the move, several deprecated or unused classes have been removed. If you cannot find a class name in the new package, it's likely that it has been removed in the process. Feel free
+	to confirm this over the forums.</p>
+
+	<h3>Removed deprecated modules</h3>
+	<p>As of Gemini Blueprint M1, not all modules or projects inside Spring DM have been moved. At the moment only the <tt>io</tt>, <tt>core</tt>, <tt>extender</tt> and <tt>test</tt> modules have 
+	transitioned are provided in M1. With the up-coming release of OSGi RFC-66, the web support is being discontinued. Existing users are encouraged to look at Eclipse Gemini Web 
+	<a href="http://www.eclipse.org/gemini/blueprint/">project</a>. The plans for the Maven archetype and annotation extension are undefined for the moment and these modules are <b>NOT</b> included
+	in Gemini Blueprint project.</p>
+	
+	<h3>Changed Maven artifact groupId/artifactId and repository</h3>
+	<p>The Maven artifacts have changed as well during the transition. For the time being, the artifacts are hosted at a new repository (<tt>zodiac.springsource.com</tt>):
+	  <pre>
+  &lt;repository&gt;
+    &lt;id&gt;zodiac-repository&lt;/id&gt;
+    &lt;name&gt;Zodiac Milestone Repository&lt;/name&gt;
+    &lt;url&gt;http://zodiac.springsource.com/maven/bundles/milestone&lt;/url&gt;
+  &lt;/repository&gt;
+  	 </pre>
+    The groupId has changed from <tt>org.springframework.osgi</tt> to <tt>org.eclipse.gemini.blueprint</tt> and artifactId from <tt>spring-osgi-*</tt> to <tt>gemini-blueprint-*</tt> (e.g.
+    <tt>spring-osgi-core</tt> is now <tt>gemini-blueprint-core</tt>).		
+	</p>
+	
+	<p>The content and names of the artifacts have remained mainly unchanged.</p>
+	
+</div>
\ No newline at end of file
diff --git a/blueprint/documentation/migration/index.php b/blueprint/documentation/migration/index.php
new file mode 100644
index 0000000..57755aa
--- /dev/null
+++ b/blueprint/documentation/migration/index.php
@@ -0,0 +1,30 @@
+<?php
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	
+	$App 	= new App();	
+	$Nav	= new Nav();	
+	$Menu 	= new Menu();		
+	include($App->getProjectCommon());
+	
+/*******************************************************************************
+ * Copyright (c) 2009 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: 
+ *   Costin Leau, VMware
+ *    
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "Gemini OSGi Blueprint - Documentation - Migrating to Gemini Blueprint";
+	
+	// 	# Paste your HTML content between the EOHTML markers!
+	$html = file_get_contents('_index.html');
+
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/app-deploy.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/app-deploy.html
new file mode 100644
index 0000000..f386f45
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/app-deploy.html
@@ -0,0 +1,293 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;8.&nbsp;Packaging and Deploying Spring-based OSGi applications</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="reference.html" title="Part&nbsp;II.&nbsp;Reference Documentation"><link rel="prev" href="bnd-app-ctx.html" title="Chapter&nbsp;7.&nbsp;Bundles and Application Contexts"><link rel="next" href="service-registry.html" title="Chapter&nbsp;9.&nbsp;The Service Registry"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="app-deploy"></a>Chapter&nbsp;8.&nbsp;Packaging and Deploying Spring-based OSGi applications</h2></div></div></div><p>A traditional Spring application uses either a single application
+    context, or a parent context containing service layer, data layer, and
+    domain objects with a child context containing web layer components. The
+    application context may well be formed by aggregating the contents of
+    multiple configuration files.</p><p>When deploying an application to OSGi the more natural structure is
+    to package the application as a set of peer bundles (application contexts)
+    interacting via the OSGi service registry. Independent subsystems should
+    be packaged as independent bundles or sets of bundles (vertical
+    partitioning). A subsystem may be package in a single bundle, or divided
+    into several bundles partitioned by layer (horizontal partitioning). A
+    straightforward web application may for example be divided into four
+    modules (bundles): a web bundle, service layer bundle, data layer bundle,
+    and domain model bundle. Such an application would look like this:</p><div class="mediaobject" align="center"><img src="images/spring-osgi-model.png" align="middle" alt="Bundles and Application Contexts"></div><p>In this example the data layer bundle yields a data layer
+    application context that contains a number of internal components (beans).
+    Two of those beans are made publicly available outside of the application
+    context by publishing them as services in the OSGi service
+    registry.</p><p>The service layer bundle yields a service layer application context
+    that contains a number of internal components (beans). Some of those
+    components depend on data layer services, and import those services from
+    the OSGi service registry. Two of the service layer components are made
+    externally available as services in the OSGi service registry.</p><p>The web component bundle yields a web application context that
+    contains a number of internal components (beans). Some of those components
+    depend on application services, and import those services from the OSGi
+    service registry. Since the domain model bundle contributes only domain
+    model types, but does not need to create any components of its own, it has
+    no associated application context.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="app-deploy:headers"></a>8.1.&nbsp;Bundle Format And Manifest Headers</h2></div></div></div><p>Each application module should be packaged as an OSGi bundle. A
+      bundle is essentially a jar file with a
+      <code class="literal">META-INF/MANIFEST.MF</code> file containing a series of
+      headers recognized by the OSGi Service Platform. See the OSGi Service
+      Platform Core Specification section 3.2 for details. Some OSGi
+      implementations may support exploded jar files, but the format remains
+      the same.</p><p>The Spring extender recognizes a bundle as "Spring-powered" and
+      will create an associated application context when the bundle is started
+      and one or both of the following conditions is true:</p><div class="itemizedlist"><ul type="disc"><li><p>The bundle path contains a folder
+          <code class="literal">META-INF/spring</code> with one or more files in that
+          folder with a '.xml' extension.</p></li><li><p><code class="literal">META-INF/MANIFEST.MF</code> contains a manifest
+          header <code class="literal">Spring-Context</code>.</p></li></ul></div><p>In addition, if the optional
+      <code class="literal">SpringExtender-Version</code> header is declared in the
+      bundle manifest, then the extender will only recognize bundles where the
+      specified version constraints are satisfied by the version of the
+      extender bundle (<code class="literal">Bundle-Version</code>). The value of the
+      <code class="literal">SpringExtender-Version</code> header must follow the syntax
+      for a version range as specified in section 3.2.5 of the OSGi Service
+      Platform Core Specification.</p><p>In the absence of the <code class="literal">Spring-Context</code> header the
+      extender expects every ".xml" file in the
+      <code class="literal">META-INF/spring</code> folder to be a valid Spring
+      configuration file, and all directives (see below) take on their default
+      values.</p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/admons/tip.png"></td><th align="left"><a name="app-deploy:headers:xml:tip"></a>Tip</th></tr><tr><td align="left" valign="top"><p>An application context is constructed from this set of files. A
+      suggested practice is to split the application context configuration
+      into at least two files, named by convention
+      <span class="emphasis"><em>modulename</em></span>-context.xml and
+      <span class="emphasis"><em>modulename</em></span>-osgi-context.xml. The
+      <span class="emphasis"><em>modulename</em></span>-context.xml file contains regular bean
+      definitions independent of any knowledge of OSGi. The
+      <span class="emphasis"><em>modulename</em></span>-osgi-context.xml file contains the bean
+      definitions for importing and exporting OSGi services. It may (but is
+      not required to) use the Gemini Blueprint OSGi schema as the
+      top-level namespace instead of the Spring 'beans' namespace.</p></td></tr></table></div><p>The <code class="literal">Spring-Context</code> manifest header may be used
+      to specify an alternate set of configuration files. The resource paths
+      are treated as relative resource paths and resolve to entries defined in
+      the bundle and the set of attached <a href="appendix-tips.html#appendix-tips:fragments" title="C.1.&nbsp;OSGi Fragments">fragments</a>. 
+      When the
+      <code class="literal">Spring-Context</code> header defines at least one
+      configuration file location, any files in
+      <code class="literal">META-INF/spring</code> are ignored unless directly
+      referenced from the <code class="literal">Spring-Context</code> header.</p><p>The syntax for the <code class="literal">Spring-Context</code> header value
+      is:</p><pre class="programlisting">Spring-Context-Value ::= context ( ',' context ) *
+context ::= path ( ';' path ) * (';' directive) *
+</pre><p>This syntax is consistent with the OSGi Service Platform common
+      header syntax defined in section 3.2.3 of the OSGi Service Platform Core
+      Specification.</p><p>For example, the manifest entry:</p><pre class="programlisting">Spring-Context: config/account-data-context.xml, config/account-security-context.xml
+</pre><p>will cause an application context to be instantiated using the
+      configuration found in the files
+      <code class="literal">account-data-context.xml</code> and
+      <code class="literal">account-security-context.xml</code> in the bundle jar
+      file.</p><p>A number of directives are available for use with the
+      <code class="literal">Spring-Context</code> header. These directives are:</p><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>create-asynchronously</em></span> (false|true):
+          controls whether the application context is created asynchronously
+          (the default), or synchronously.</p><p>For example:</p><pre class="programlisting">Spring-Context: *;create-asynchronously:=false 
+</pre><p>Creates an application context synchronously, using all of the
+      "*.xml" files contained in the <code class="literal">META-INF/spring</code>
+      folder.</p><pre class="programlisting">Spring-Context: config/account-data-context.xml;create-asynchrously:=false
+</pre><p>Creates an application context synchronously using the
+      <code class="literal">config/account-data-context.xml</code> configuration file.
+      Care must be taken when specifying synchronous context creation as the
+      application context will be created on the OSGi event thread, blocking
+      further event delivery until the context is fully initialized. If an
+      error occurs during the synchronous creation of the application context
+      then a <code class="literal">FrameworkEvent.ERROR</code> event is raised. The bundle will still
+      proceed to the <code class="literal">ACTIVE</code> state.</p></li><li><p><span class="emphasis"><em>wait-for-dependencies</em></span> (true|false):
+          controls whether or not application context creation should wait for
+          any mandatory service dependencies to be satisfied before proceeding
+          (the default), or proceed immediately without waiting if
+          dependencies are not satisfied upon startup.</p><p>For example:</p><pre class="programlisting">Spring-Context: config/osgi-*.xml;wait-for-dependencies:=false
+</pre><p>Creates an application context using all the files matching
+      "osgi-*.xml" in the config directory. Context creation will begin
+      immediately even if dependencies are not satisfied. This essentially
+      means that mandatory service references are treated as though they were
+      optional - clients will be injected with a service object that may not
+      be backed by an actual service in the registry initially. See 
+      <a href="service-registry.html#service-registry:refs:singular:dynamics" title="9.2.2.9.&nbsp;reference And OSGi Service Dynamics">Section&nbsp;9.2.2.9, &#8220;<code class="literal">reference</code> And OSGi Service Dynamics&#8221;</a> for more details.</p></li><li><p><span class="emphasis"><em>timeout</em></span> (300): the time to wait (in
+          seconds) for mandatory dependencies to be satisfied before giving up
+          and failing application context creation. This setting is ignored if
+          <code class="literal">wait-for-dependencies:=false</code> is specified. The
+          default is 5 minutes (300 seconds).</p><p>For example:</p><pre class="programlisting">Spring-Context: *;timeout:=60
+</pre><p>Creates an application context that waits up to 1 minute (60 seconds)
+	  for its mandatory dependencies to appear.
+	  </p></li><li><p><span class="emphasis"><em>publish-context</em></span> (true|false): controls
+          whether or not the application context object itself should be
+          published in the OSGi service registry. The default is to publish
+          the context.</p><p>For example:</p><pre class="programlisting">Spring-Context: *;publish-context:=false
+</pre><p>If there is no <code class="literal">Spring-Context</code> manifest entry, or no value is
+      specified for a given directive in that entry, then the directive takes
+      on its default value.</p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="app-deploy:headers:blueprint"></a>8.2.&nbsp;Blueprint Manifest Configuration Comparison</h2></div></div></div><p>The table below summarizes the differences between the manifest configuration options in Eclipse Gemini Blueprint/Spring DM and Blueprint Container:</p><div class="table"><a name="sdm-vs-blueprint-config-attr"></a><p class="title"><b>Table&nbsp;8.1.&nbsp;Configuration Setting Differences</b></p><div class="table-contents"><table summary="Configuration Setting Differences" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Option</th><th>Gemini Blueprint/Spring DM</th><th>Blueprint</th></tr></thead><tbody><tr><td>Default Configuration Location</td><td><code class="literal">META-INF/spring</code></td><td><code class="literal">OSGI-INF/blueprint</code></td></tr><tr><td>Custom Locations Header</td><td><code class="literal">Spring-Context</code></td><td><code class="literal">Bundle-Blueprint</code></td></tr><tr><td>Attribute Header</td><td><code class="literal">Spring-Context</code></td><td><code class="literal">Bundle-SymbolicName</code></td></tr><tr><td>Asynchronous Creation Attribute</td><td><code class="literal">create-asynchronously</code></td><td><code class="literal">-</code></td></tr><tr><td>Startup Mandatory Dependencies Attribute</td><td><code class="literal">wait-for-dependencies</code></td><td><code class="literal">blueprint.graceperiod</code></td></tr><tr><td>Startup Mandatory Timeout Attribute</td><td><code class="literal">timeout</code> (in s)</td><td><code class="literal">blueprint.timeout</code> (in ms)</td></tr><tr><td>Container API Service Publication Attribute</td><td><code class="literal">publish-context</code></td><td><code class="literal">-</code></td></tr></tbody></table></div></div><br class="table-break"><p>The manifests below are equivalent in terms of settings:</p><div class="programlistingco"><pre class="programlisting">Bundle-SymbolicName: org.example.account.bundle
+Spring-Context: config/account-data-context.xml, config/osgi-*.xml;    <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+ wait-for-dependencies:=true;
+ timeout:=10                                                           <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>All Gemini Blueprint/Spring DM specific attributes are grouped under <code class="literal">Spring-Context</code> header.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Timeout specified in <span class="emphasis"><em>seconds</em></span>.</p></td></tr></table></div></div><div class="programlistingco"><pre class="programlisting">Bundle-SymbolicName: org.example.account.bundle;                       <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+ blueprint.graceperiod:=true;
+ blueprint.timeout:=10000                                              <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+Blueprint-Bundle: config/account-data-context.xml, config/osgi-*.xml   <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Blueprint settings are spread between <code class="literal">Bundle-SymbolicName</code> and <code class="literal">Blueprint-Bundle</code>.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Timeout specified in <span class="emphasis"><em>milliseconds</em></span>.</p></td></tr></table></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="app-deploy:extender-configuration"></a>8.3.&nbsp;Extender Configuration Options</h2></div></div></div><p>Aside from bundle-specific configurations, Gemini Blueprint/Spring DM allows the core extender generic behaviour be configured. This is useful when
+    	embedding Spring DM inside a managed environment or when a bundles-wide functionality is desired. To allow for extensible configuration,
+    	the extender relies on OSGi <a href="appendix-tips.html#appendix-tips:fragments" title="C.1.&nbsp;OSGi Fragments">fragments</a> to override its defaults. The extender looks for all XML files 
+    	under <code class="literal">META-INF/spring/extender</code> folder in its bundle space and assembled them into an application context 
+    	(of type <code class="classname">OsgiBundleXmlApplicationContext</code>) 
+    	that is used internally as its configuration. To override a default setting of the extender, look up the appropriate bean
+    	name from the table below, define it in a suitable manner and then attach it as a <a href="appendix-tips.html#appendix-tips:fragments" title="C.1.&nbsp;OSGi Fragments">fragment</a> to the 
+    	<code class="literal">spring-osgi-extender.jar</code>, using:</p><pre class="programlisting">Fragment-Host: org.eclipse.gemini.blueprint.extender</pre><p>The following beans are currently recognized by the extender:</p><div class="table"><a name="extender-configuration-options"></a><p class="title"><b>Table&nbsp;8.2.&nbsp;Extender Configuration Options</b></p><div class="table-contents"><table summary="Extender Configuration Options" width="100%" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Bean Name</th><th>Type</th><th>Role</th><th>Default Behaviour/Value</th></tr></thead><tbody><tr><td><code class="literal">taskExecutor</code></td><td><code class="interfacename">TaskExecutor</code>
+                <sup>[<a name="d18e1685" href="#ftn.d18e1685">a</a>]</sup></td><td>Creates and runs the Spring application contexts associated with each bundle. The task executor is responsible for managing its own pool
+                of threads used by the application contexts</td><td><code class="classname">SimpleAsyncTaskExecutor</code> is used by default which means a new thread will be created for each application contexts. While this
+                is suitable for testing and development, we strongly recommend to use a <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://en.wikipedia.org/wiki/Thread_pool_pattern" target="_top">thread pool</a> 
+                in a production environment</td></tr><tr><td><code class="literal">shutdownTaskExecutor</code></td><td><code class="interfacename">TaskExecutor</code>
+                <sup>[<a name="d18e1707" href="#ftn.d18e1707">b</a>]</sup></td><td>Destroys managed Spring application contexts associated with each bundle. The task executor is responsible for managing its own pool
+                of threads used by the application contexts</td><td><code class="classname">TimerTaskExecutor</code> is used by default which means all application context will be destroyed in a serialized manner (which is
+                desired). Since the shutdown order normally matters, it is recommended to keep the default implementation or, for managed environments, to use a thread-pool
+                that executes only one task at a time (so that contexts are stopped in the given order).</td></tr><tr><td><code class="literal">extenderProperties</code></td><td><code class="classname">java.util.Properties</code></td><td>Defines simple properties such as the maximum time for contexts to gracefully close</td><td>See the <a href="app-deploy.html#extender-configuration-options-properties" title="Table&nbsp;8.3.&nbsp;Available extenderProperties">defaults</a> below</td></tr><tr><td><code class="literal">osgiApplicationEventMulticaster</code></td><td><code class="interfacename">ApplicationEventMulticaster</code>
+                <sup>[<a name="d18e1740" href="#ftn.d18e1740">c</a>]</sup>
+                </td><td><code class="literal"><a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/context/event/ApplicationEventMulticaster.html" target="_top">
+                ApplicationEventMultiCaster</a></code> used for propagating Gemini Blueprint/Spring DM <a href="app-deploy.html#app-deploy:extender-configuration:events" title="8.3.1.&nbsp;Listening To Extender Events">events</a>
+                to third parties. 
+                </td><td>An instance of <code class="classname"><a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/context/event/SimpleApplicationEventMulticaster.html" target="_top">
+                SimpleApplicationEventMulticaster</a></code> is used.
+                See <code class="classname">AbstractApplicationContext</code> 
+                <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/context/support/AbstractApplicationContext.html" target="_top">javadoc</a> 
+                for more information regarding available beans in an application context.</td></tr><tr><td><a name="extender-configuration-options:acc"></a><code class="literal">applicationContextCreator</code></td><td><code class="interfacename">OsgiApplicationContextCreator</code>
+                <sup>[<a name="extender-configuration-options:extender.pkg" href="#ftn.extender-configuration-options:extender.pkg">d</a>]</sup>
+                </td><td>Allows customization of the application context created by the extender. This includes changing the application context class type or additional
+                processing (see <a href="app-deploy.html#extender-configuration-options:obfpp">below</a>).</td><td>The Extender default behaviour applies.</td></tr><tr><td><a name="extender-configuration-options:obfpp"></a><span class="emphasis"><em>(irrelevant)</em></span></td><td><code class="interfacename">OsgiBeanFactoryPostProcessor</code>
+                <sup>[<a href="#ftn.extender-configuration-options:extender.pkg">d</a>]</sup>
+                </td><td>Similar to Spring's <code class="interfacename">BeanFactoryPostProcessor</code> interface, beans of type
+                <code class="interfacename">OsgiBeanFactoryPostProcessor</code> are automatically detected and applied to all contexts created by the
+                extender (whether <a href="app-deploy.html#extender-configuration-options:acc">user-defined</a> or not). This type of post processor
+                is useful as it allows customization of the bean factory such as adding/removing/changing existing bean definitions or adding new bean
+                instances.</td><td>The Extender default behaviour applies.</td></tr><tr><td><a name="extender-configuration-options:contextListener"></a><code class="literal">osgiApplicationContextListener</code></td><td><code class="interfacename">OsgiBundleApplicationContextListener</code>
+                <sup>[<a name="extender-configuration-options:event.pkg" href="#ftn.extender-configuration-options:event.pkg">e</a>]</sup>
+                </td><td>Application context event listener registered automatically by the extender.</td><td>Default implementation provides logging of the managed application contexts lifecycle.</td></tr></tbody><tbody class="footnotes"><tr><td colspan="4"><div class="footnote"><code class="literal"><sup>[<a name="ftn.d18e1685" href="#d18e1685">a</a>] </sup>org.springframework.core.task</code></div><div class="footnote"><code class="literal"><sup>[<a name="ftn.d18e1707" href="#d18e1707">b</a>] </sup>org.springframework.core.task</code></div><div class="footnote"><code class="literal"><sup>[<a name="ftn.d18e1740" href="#d18e1740">c</a>] </sup>org.springframework.context.event</code></div><div class="footnote"><code class="literal"><sup>[<a name="ftn.extender-configuration-options:extender.pkg" href="#extender-configuration-options:extender.pkg">d</a>] </sup>org.eclipse.gemini.blueprint.extender package</code></div><div class="footnote"><code class="literal"><sup>[<a name="ftn.extender-configuration-options:event.pkg" href="#extender-configuration-options:event.pkg">e</a>] </sup>org.eclipse.gemini.blueprint.context.event package</code></div></td></tr></tbody></table></div></div><br class="table-break"><p>From the <code class="literal">extenderProperties</code> bean, the following properties are recognized:</p><p>In addition, in Eclipse Gemini Blueprint a new system property has been introduced to control whether bundles providing namespace extensions should be considered in RESOLVED (default) 
+		or STARTED state. The former allows namespaces to be picked up as soon as a bundle installed into the OSGi framework has its dependencies resolved - the advantage is that the namespaces become
+		available as soon as possible but on the downside, one needs to remove the source bundle in order to remove the namespace.
+		The latter forces namespaces to be considered only when the source bundles are actually started - to remove a namespace simply stop the owning bundle. However the order in which the bundles 
+		are started influences the available namespace - the bundles providing the namespaces need to start before the bundles that require them - depending on the app such a dependency graph can create
+		some subtle problems (at runtime).
+		
+		Thus, if the system property <code class="literal">org.eclipse.gemini.blueprint.ns.bundles.started</code> is defined and set to <code class="literal">true</code> then only namespace bundles <span class="emphasis"><em>started</em></span>
+		will be considered, if not the ones <span class="emphasis"><em>resolved</em></span> will be used.
+		</p><div class="table"><a name="extender-configuration-options-properties"></a><p class="title"><b>Table&nbsp;8.3.&nbsp;Available <code class="literal">extenderProperties</code></b></p><div class="table-contents"><table summary="Available extenderProperties" width="100%" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th></tr></thead><tbody><tr><td><code class="literal">shutdown.wait.time</code></td><td><code class="classname">java.lang.Long</code></td><td>The amount of time the extender will wait for each application context to shutdown gracefully. Expressed in milliseconds.</td><td>10000 ms (10 s)</td></tr><tr><td><code class="literal">dependencies.wait.time</code></td><td><code class="classname">java.lang.Long</code></td><td>The amount of time the newly created application contexts will wait for their mandatory service dependencies during startup. Expressed
+                in milliseconds. This settings is used only if the context owning bundle manifest does <span class="emphasis"><em>not</em></span> define a value. </td><td>300000 ms (300 s or 5 min)</td></tr></tbody></table></div></div><br class="table-break"><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">Since an application context is used, the full power of the Spring IoC container can be used for creating the extender configuration beans.</td></tr></table></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="app-deploy:extender-configuration:events"></a>8.3.1.&nbsp;Listening To Extender Events</h3></div></div></div><p>There are cases when the failure or succesful startup of an application context needs to be acknowledged for logging purposes (for example).
+    		For these cases, Gemini Blueprint/Spring DM offers a dedicated package <code class="literal">org.eclipse.gemini.blueprint.context.event</code> which defines the events that
+    		OSGi application contexts can send during their lifecycle. At the moment, the following events are available:</p><div class="table"><a name="app-deploy:extender-configuration:events-table"></a><p class="title"><b>Table&nbsp;8.4.&nbsp;Gemini Blueprint/Spring DM build-in events</b></p><div class="table-contents"><table summary="Gemini Blueprint/Spring DM build-in events" width="100%" border="1"><colgroup><col><col></colgroup><thead><tr><th>Event</th><th>Explanation</th></tr></thead><tbody><tr><td><code class="classname">OsgiBundleContextRefreshedEvent</code></td><td>Published when an OSGi application context has been succesfully initialized or refreshed (e.g. using the 
+	                <code class="methodname">refresh()</code>  method on the <code class="interfacename">ConfigurableApplicationContext</code> interface).
+	                There are no guarantees on how many times this event might be received during the lifecycle of an application context - this is
+	                left up to the used implementation.</td></tr><tr><td><code class="classname">OsgiBundleContextFailedEvent</code></td><td>Published when an OSGi application context is closed due to a failure. This event can appear any time during the lifecycle
+	                of an application context - before, during or after refresh. Usually the cause indicates an error in the configuration - syntax typo,
+	                incorrect wiring, missing bean and so forth.</td></tr><tr><td><code class="classname">OsgiBundleContextClosedEvent</code></td><td>Published when an OSGi application context is closed after a successful refresh (normally issued a Spring bundle is being stopped).
+	                </td></tr></tbody></table></div></div><br class="table-break"><p>Parties interested in receiving these events should implement <code class="interfacename">OsgiBundleApplicationContextListener</code> and
+    		then publish it as an OSGi service. The Gemini Blueprint/Spring DM extender will automatically detect the listener and will send the events to it. By taking advantage
+    		of the OSGi service registry, the extender decouples the received from the event publisher and moreover, makes the registration/unregistration process
+    		easier. For example, there is nothing special a client should do to unregister the listener - simply stopping the bundle will automatically 
+    		unregister all its published services (including the listener), an event which will detected by the extender which will remove the listener.
+    		Of course, it is also possible for the client to unregister the listener manually during a bundle lifecycle.
+			    		
+    		</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">The Gemini Blueprint/Spring DM events semantics are slightly different then
+    		<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#context-functionality-events" target="_top">Spring's</a>. The OSGi events are
+    		not sent to beans inside the <span class="emphasis"><em>causing</em></span> application context but to other parties (possible beans in other application contexts)
+    		interested in monitoring its behaviour.</td></tr></table></div><p>
+    		</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="app-deploy:required-libraries"></a>8.4.&nbsp;Required Spring Framework And Gemini Blueprint
+      Bundles</h2></div></div></div><p>The Gemini Blueprint project provides a number of bundle
+      artifacts that must be installed in your OSGi platform in order for the
+      Spring extender to function correctly:</p><div class="itemizedlist"><ul type="disc"><li><p>The extender bundle itself,
+          <code class="literal">org.eclipse.gemini.blueprint.extender</code></p></li><li><p>The core implementation bundle for the Gemini Blueprint
+          support, <code class="literal">org.eclipse.gemini.blueprint.core</code></p></li><li><p>The Gemini Blueprint I/O support library bundle,
+          <code class="literal">org.eclipse.gemini.blueprint.io</code></p></li></ul></div><p>In addition, the Spring Framework provides a number of bundles that
+      are required to be installed as dependencies. As of release 2.5 of the 
+      Spring Framework, the Spring jars included in the Spring distribution are valid OSGi
+      bundles and can be installed directly into an OSGi platform. The minimum
+      required set of bundles is:</p><div class="itemizedlist"><ul type="disc"><li><p>org.springframework.aop.jar (bundle symbolic name
+          <code class="literal">org.springframework.aop</code>)</p></li><li><p>org.springframework.asm.jar (bundle symbolic name
+          <code class="literal">org.springframework.asm</code>)</p></li><li><p>org.springframework.beans.jar (bundle symbolic name
+          <code class="literal">org.springframework.beans</code>)</p></li><li><p>org.springframework.core.jar (bundle symbolic name
+          <code class="literal">org.springframework.core</code>)</p></li><li><p>org.springframework.context.jar (bundle symbolic name
+          <code class="literal">org.springframework.context</code>)</p></li><li><p>org.springframework.expression.jar (bundle symbolic name
+          <code class="literal">org.springframework.expression</code>)</p></li></ul></div><p>In additional the following supporting library bundles are
+      required. OSGi-ready versions of these libraries are shipped with the
+      Gemini Blueprint distribution.</p><div class="itemizedlist"><ul type="disc"><li><p>aopalliance</p></li><li><p>cglib-nodep (when proxying classes rather then
+          interfaces, needed in most cases)</p></li><li><p>commons-logging API (<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.slf4j.org/" target="_top">SLF4J</a> version <span class="emphasis"><em>highly</em></span> recommended:</p><div class="itemizedlist"><ul type="circle"><li><p>SLF4J API (com.springsource.sfl4j.api.jar)</p></li><li><p>SLF4J Implementation Bridge (such as Log4j - com.springsource.sfl4j.log4j.jar)</p></li><li><p>SLF4J commons logging adapter (com.springsource.sfl4j.org.apache.commons.logging.jar)</p></li></ul></div></li><li><p>logging implementation suitable for commons-logging (such as log4j)</p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="app-deploy:spring-namespaces"></a>8.5.&nbsp;Spring XML Authoring Support</h2></div></div></div><p>Spring 2.0 introduced (among other things) <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/xsd-config.html" target="_top">
+    	easier</a> XML configuration and <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/extensible-xml.html" target="_top">
+    	extensible</a> XML authoring. The latter gives the ability of creating custom schemas that are discovered automatically (in non-OSGi environment)
+    	by the Spring XML infrastructure by including them in the classpath. Gemini Blueprint/Spring DM is aware of this process and supports it in OSGi environments so
+    	that custom schemas are available to bundles that use them without any extra code or manifest declaration.</p><p>All bundles deployed in the OSGi space (whether they are <code class="literal">Spring-powered</code> or not) are scanned by Gemini Blueprint/Spring DM for 
+    	custom Spring namespace declaration (by checking the bundle space for<code class="literal">META-INF/spring.handlers</code> and 
+    	<code class="literal">META-INF/spring.schemas</code>). If these are found, Gemini Blueprint/Spring DM will make the schemas and the namespaces available through an OSGi
+    	service that will be automatically used by Spring-powered bundles. This mean that if you deploy a bundle that uses a custom schema, all you have to do
+    	is deploy the library that provides the namespace parser and the schema.
+    	Bundles that embedded inside their classpath libraries that provide custom schemas will use these over those available in the OSGi space. However,
+    	the namespaces of the embedded libraries will not shared with other bundles, that is, they will not be seen by any other bundle.</p><p>
+    	In short, when using Gemini Blueprint/Spring DM, custom Spring namespaces are supported transparently without any additional work. Embedded namespace providers will
+    	have priority but will not be shared, as opposed to providers deployed as bundles which will be seen (and used) by others.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="app-deploy:imports-exports"></a>8.6.&nbsp;Importing and Exporting Packages</h2></div></div></div><p>Refer to the OSGi Service Platform for details of the
+      <code class="literal">Import-Package</code> and <code class="literal">Export-Package</code>
+      manifest headers. Your bundle will need an
+      <code class="literal">Import-Package</code> entry for every external package that
+      the bundle depends on. If your bundle provides types that other bundles
+      need access to, you will need <code class="literal">Export-Package</code> entries
+      for every package that should be available from outside of the
+      bundle.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/admons/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top">Both <code class="literal">Export</code> and <code class="literal">Import-Package</code> have a crucial role in defining a bundle class space. If used incorrectly,
+      the bundle might not be able to load certain classes or resources, load incorrect versions or even load multiple versions at the same time which usually 
+      result in <code class="literal">ClassCastException</code>, <code class="literal">NoClassDefFoundError</code> or <code class="literal">LinkageError</code>. We strongly
+      recommend that you get familiar with the basics and, at least for starters, use tools 
+      (such as <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springsource.org/bundlor" target="_top">Bundlor</a> or <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.aqute.biz/Code/Bnd" target="_top">BND</a>) for creating proper 
+      OSGi manifests.</td></tr></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="app-deploy:ext-libs"></a>8.7.&nbsp;Considerations When Using External Libraries</h2></div></div></div><div class="sidebar"><p class="title"><b>What is the context class loader?</b></p><p>
+      	The thread context class loader was introduced in J2SE without much fanfare.
+      	Below is a short definition for it, quoted from <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://java.sun.com/products/jndi/tutorial/beyond/misc/classloader.html" target="_top">one
+      	</a> of the tutorials available on <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://java.sun.com/" target="_top">Java</a> site:
+      	</p><p>
+      	The Java 2 platform also introduced the notion of <span class="emphasis"><em>context class loader</em></span>. A thread's context class loader is, by default, 
+      	set to the context class loader of the thread's parent. The hierarchy of threads is rooted at the primordial thread (the one that runs the program). 
+      	The context class loader of the primordial thread is set to the class loader that loaded the application. So unless you explicitly change 
+      	the thread's context class loader, its context class loader will be the application's class loader. That is, the context class loader can 
+      	load the classes that the application can load. This loader is used by the Java runtime such as the RMI (Java Remote Method Invocation) to 
+      	load classes and resources on behalf of the user application. The context class loader, like any Java 2 platform class loader, has a parent 
+      	class loader and supports the same delegation model for class loading described previously.
+      	</p></div><p>Many enterprise application libraries assume that all of the types
+      and resources that comprise the application are accessible through the
+      context class loader. While most developers do not use the context class 
+      loader, the loader is used heavily by application servers, containers or 
+      applications that are multi-threaded.</p><p>		      
+      In OSGi R4, the set of types and resources
+      available through the context class loader is undefined. 
+      This means that the OSGi platform does not make a guarantee of the thread context 
+      class loader value or in other words, it does not manage it.
+      </p><p>
+      Thus code (for example libraries) that performs manual class loading or that generates 
+      new classes dynamically can cause problems when executed inside an OSGi environment.
+      </p><p>Gemini Blueprint guarantees that during the creation of an
+      application context on behalf of a given bundle, all of the types and
+      resources on the bundle's classpath are accessible via the context class
+      loader. Gemini Blueprint also allows you to control what is
+      accessible through the context class loader when invoking external
+      services and when servicing requests on exported services. See <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>
+      for details on this.</p><p>Work is underway in the OSGi R5 timeframe to provide standardized
+      support for dealing with generated classes and implicit class path
+      dependencies introduced by third-party libraries. In the interim you may
+      need to rely on workarounds such as the
+      <code class="literal">DynamicImport-Package</code> manifest header, or the
+      facilities provided by specific OSGi implementations such as Equinox's
+      buddy mechanism. The Gemini Blueprint documentation contains more
+      details on known issues with common enterprise libraries and the
+      workarounds.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="app-deploy:troubleshooting"></a>8.8.&nbsp;Diagnosing Problems</h2></div></div></div><p>Your chosen OSGi platform implementation should be able to provide
+      you with a good deal of information about the current status of the OSGi
+      environment. For example, starting Equinox with the
+      <code class="literal">-console</code> argument provides a command-line console
+      through which you can determine which bundles are installed and their
+      states, the packages and services exported by bundles, find out why a
+      bundle has failed to resolve, and drive bundles through the
+      lifecycle. All the OSGi platform tested, provide their own logging, which
+      can be enabled and customized through dedicated settings. For more information,
+      please refer to OSGi platforms documentation.</p><p>In addition, Spring itself and the Gemini Blueprint bundles
+      contain extensive logging instrumentation that can help you diagnose
+      problems. The recommended approach is to deploy the Simple Logging
+      Facade for Java (<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.slf4j.org/" target="_top">slf4j</a>)
+      slf4j-api.jar and slf4j-log4j13.jar bundles (the jar files distributed
+      by the project are valid OSGi bundles). Then you simply need to create a
+      <code class="literal">log4j.properties</code> file in the root of your bundle
+      classpath.</p><p>Managed, OSGi-aware runtime environments such as 
+      <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springsource.com/products/dmserver" target="_top">dmServer</a>
+      provide additional logging and insight not just for the bundle at hand, but also
+      regarding the application context and the VM among other things.</p><p>Note that Gemini Blueprint uses commons-logging API internally
+      which means that its logging implementation is fully pluggable. Please see
+      the FAQ and Resources pages for more information on other logging libraries
+      besides log4j.
+      </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="bnd-app-ctx.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="service-registry.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;7.&nbsp;Bundles and Application Contexts&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;9.&nbsp;The Service Registry</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-ack.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-ack.html
new file mode 100644
index 0000000..e2e2b01
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-ack.html
@@ -0,0 +1,7 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Appendix&nbsp;G.&nbsp;Acknowledgments</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="appendixes.html" title="Part&nbsp;IV.&nbsp;Appendixes"><link rel="prev" href="appendix-schema.html" title="Appendix&nbsp;F.&nbsp;Gemini Blueprint Schema"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="appendix-ack"></a>Appendix&nbsp;G.&nbsp;Acknowledgments</h2></div></div></div><p>Gemini Blueprint would like to thank (in alphabetical order) to :
+    Bill Gallagher, Olivier Gruber, Richard S. Hall, BJ Hargrave, Peter Kriens,
+    Martin Lippert, Jeff McAffer, Glyn Normington, Gerd Wuetherich 
+    for their contributions in the development of this documentation.</p></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="appendix-schema.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;</td></tr><tr><td width="40%" align="left" valign="top">Appendix&nbsp;F.&nbsp;Gemini Blueprint Schema&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;</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-osgi-repo.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-osgi-repo.html
new file mode 100644
index 0000000..ffcad95
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-osgi-repo.html
@@ -0,0 +1,40 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Appendix&nbsp;E.&nbsp;Gemini Blueprint OSGi Repository</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="appendixes.html" title="Part&nbsp;IV.&nbsp;Appendixes"><link rel="prev" href="appendix-roadmap.html" title="Appendix&nbsp;D.&nbsp;Roadmap"><link rel="next" href="appendix-schema.html" title="Appendix&nbsp;F.&nbsp;Gemini Blueprint Schema"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="appendix-osgi-repo"></a>Appendix&nbsp;E.&nbsp;Gemini Blueprint OSGi Repository</h2></div></div></div><p>At the moment, most libraries are not released as OSGi bundles which means they cannot be used inside the OSGi space unless they
+    are embedded in other bundles. Though there are <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.aqute.biz/Code/Bnd" target="_top">tools</a> that make the bundling 
+    process easy, it is desirable to have the artifacts prepacked so they can be used immediately for development.</p><p>SpringSource <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springsource.com/repository/" target="_top">Enterprise Bundle Repository</a> (or SpringSource Repository) addresses this problem by 
+    providing 
+    &#8220;<span class="quote">a collection of open source libraries commonly used for developing enterprise Java applications with the Spring Framework</span>&#8221; (taken
+    from the Repository <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springsource.com/repository/app/faq" target="_top">FAQ</a>). With the availability of the Bundle Repository,
+    the Gemini Blueprint old repository (see below) has been deprecated and it is being used until migrating completely to SpringSource Repository. It is highly recommended
+    that users migrate as well to SpringSource Repository as it provides significantly more libraries and it is intended to be a user-facing infrastructure component. 
+    </p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="appendix-osgi-repo:old-repo"></a>E.1.&nbsp;Gemini Blueprint Temporary OSGi Repository</h2></div></div></div><p>Unfortunately, not all Gemini Blueprint dependencies are available in SpringSource Repository and thus Gemini Blueprint still needs to maintain some of its own 
+    	dedicated Maven <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://maven.apache.org/guides/introduction/introduction-to-repositories.html" target="_top">repository</a> available
+	    at <code class="literal">http://maven.springframework.org/osgi</code>.
+	    
+	    </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/admons/warning.png"></td><th align="left">Warning</th></tr><tr><td align="left" valign="top">The repository is <span class="emphasis"><em>provided as-is</em></span> without any kind of support. The repository structure/content
+	    can (and will) change until it becomes stable. Before using Gemini Blueprint repository make sure the needed artifact are not available
+	    in SpringSource Repository. These being said, we hope you find it useful and we'd like to <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://jira.springframework.org/browse/OSGI" target="_top">know</a> 
+	    if there are improvement that can be made to it.</td></tr></table></div><p> 
+	    </p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="appendix-osgi-repo:conventions"></a>E.1.1.&nbsp;Repository Conventions</h3></div></div></div><p>Currently, all the artifacts published in the repository are marked as <code class="literal">SNAPSHOT</code>s meaning that, in time, their
+		content can change. This allows clients to download possible manifest updates made to the libraries. We foresee that, as the library usage
+		increases, several popular items will have the <code class="literal">SNAPSHOT</code> marker remove.
+		Additionally, to differentiate the <span class="emphasis"><em>OSGi</em></span>-enabled artifacts from the original ones, all libraries are placed under
+		<code class="literal">org.eclipse.gemini.blueprint</code> group and their names contains a <code class="literal">.osgi</code> suffix.</p><p>So for example, an OSGi version of <code class="literal">mx4j-3.0.2</code> jar is available in the Gemini Blueprint OSGi repository under at:
+		<code class="literal">org.eclipse.gemini.blueprint/mx4j.osgi/3.0.2-SNAPSHOT/mx4j.osgi-3.0.2-SNAPSHOT.jar</code></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="appendix-osgi-repo:browsing"></a>E.1.2.&nbsp;Browsing The Repository Content</h3></div></div></div><p>The repository is currently hosted at Amazon <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://aws.amazon.com/s3" target="_top">S3</a>. To browse the repository structure,
+		use a S3 compatible browser (such as <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://s3browse.com/explore/maven.springframework.org/osgi/org.eclipse.gemini.blueprint/" target="_top">this</a> one)
+		since a vanilla web browse will not be suitable. 
+		</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="appendix-osgi-repo:maven"></a>E.1.3.&nbsp;Using The Repository With Maven</h3></div></div></div><p>The use the repository, simply add it ot the <code class="literal">repositories</code> group; since the repository 
+		contains <code class="literal">SNAPSHOT</code> artifacts, make sure to mark it accordingly:</p><pre class="programlisting">&lt;<span class="hl-tag">repositories</span>&gt;
+  &lt;<span class="hl-tag">repository</span>&gt;
+    &lt;<span class="hl-tag">id</span>&gt;spring-osgified-artifacts&lt;<span class="hl-tag">/id</span>&gt;
+    &lt;<span class="hl-tag">snapshots</span>&gt;
+      &lt;<span class="hl-tag">enabled</span>&gt;true&lt;<span class="hl-tag">/enabled</span>&gt;
+    &lt;<span class="hl-tag">/snapshots</span>&gt;
+    &lt;<span class="hl-tag">name</span>&gt;Springframework Maven OSGified Artifacts Repository&lt;<span class="hl-tag">/name</span>&gt;
+    &lt;<span class="hl-tag">url</span>&gt;http://maven.springframework.org/osgi&lt;<span class="hl-tag">/url</span>&gt;
+  &lt;<span class="hl-tag">/repository</span>&gt;
+&lt;<span class="hl-tag">/repositories</span>&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="appendix-osgi-repo:ant"></a>E.1.4.&nbsp;Using The Repository With Ant/Ivy</h3></div></div></div><p>When using <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://ant.apache.org/" target="_top">Ant</a> consider using the excellent <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://ant.apache.org/ivy/" target="_top">Ivy</a>
+		subproject for retrieving the OSGi dependencies from the Gemini Blueprint repository as Ivy can work with a Maven-style repository. Please see the 
+		Ivy <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://ant.apache.org/ivy/history/latest-milestone/tutorial/start.html" target="_top">tutorial</a> for more information.</p></div></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="appendix-roadmap.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="appendix-schema.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix&nbsp;D.&nbsp;Roadmap&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;Appendix&nbsp;F.&nbsp;Gemini Blueprint Schema</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-pde-integration.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-pde-integration.html
new file mode 100644
index 0000000..c3d03a9
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-pde-integration.html
@@ -0,0 +1,39 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Appendix&nbsp;B.&nbsp;Eclipse Plug-in Development integration</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="appendixes.html" title="Part&nbsp;IV.&nbsp;Appendixes"><link rel="prev" href="appendix-security.html" title="Appendix&nbsp;A.&nbsp;Security Integration"><link rel="next" href="appendix-tips.html" title="Appendix&nbsp;C.&nbsp;Useful OSGi tips"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="appendix-pde-integration"></a>Appendix&nbsp;B.&nbsp;Eclipse Plug-in Development integration</h2></div></div></div><p>Eclipse <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/pde/" target="_top">PDE</a> &#8220;<span class="quote">provides comprehensive OSGi tooling, which makes it 
+    an ideal environment for component programming, not just Eclipse plug-in development</span>&#8221;.
+    In fact, Eclipse IDE is built on top of OSGi and uses at its core the Equinox OSGi implementation. Moreover, all the Eclipse 
+    plug-ins are OSGi bundles. This makes Eclipse with PDE a very attractive tool for creating OSGi bundles.
+    While Gemini Blueprint artifacts can be integrated as <span class="emphasis"><em>normal</em></span> libraries, through 
+    <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springide.org" target="_top">Spring IDE</a>, Gemini Blueprint can be installed as a 
+    <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.pde.doc.user/guide/tools/preference_pages/target_platform.htm" target="_top">
+    target platform</a> ready to be used with PDE.
+   </p><div class="procedure"><p>The following steps illustrate how to install Spring IDE extension for OSGi and how to use it in your project. Please see 
+     <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://springide.org/project/wiki/SpringideInstall" target="_top">Spring IDE installation page</a> for information on its requirement
+     and install process.</p><ol type="1"><li><p class="title"><b>Set Up Nightly Update Site</b></p><p>At the moment, the OSGi extension is available only on Spring-IDE nightly builds update site. Add it to the Eclipse configuration by
+   	 	opening the software update menu:
+   	 	</p><p>
+		  </p><div class="mediaobject" align="left"><img src="images/pde/find-install.png" align="left"></div><p>
+          
+		  </p><div class="mediaobject" align="central"><img src="images/pde/springide-site.png" align="central"></div><p>        
+          
+        </p><p>and create a new update site pointing to <code class="literal">http://www.springide.org/updatesite_nightly</code></p></li><li><p class="title"><b>Select Spring IDE OSGi extension</b></p><p>After using the nightly update site and performing the update, Eclipse will show the search results. Unfold the <span class="emphasis"><em>Extension</em></span> menu and select <code class="literal">Spring IDE OSGi Extension</code>:</p><p>
+		  </p><div class="mediaobject" align="center"><img src="images/pde/spring-osgi-plugin.png" align="middle" alt="Select Spring IDE OSGI extension"></div><p>        
+        </p><p>and proceed with the instalation.</p></li><li><p class="title"><b>Select Gemini Blueprint Target Platform</b></p><p>Once the plug-in has been installed, Gemini Blueprint can be selected as a PDE target platform. Select Window/Preferences/Plug-in Development and then
+   	 	Target Platform.</p><p>
+		  </p><div class="mediaobject" align="center"><img src="images/pde/target-select.png" align="middle" alt="Select Gemini Blueprint target platform"></div><p>
+        </p><p>Select the Gemini Blueprint version that you desire from the Pre-defined Target (1) drop box and press Load Target (2). Eclipse will load the target and all bundles defined
+        by it - this includes Gemini Blueprint bundles and all of its dependencies (SLF4J is used for logging). The configuration can be customised appropriately by removing
+        and adding bundles.</p><p>In its current form, the plug-in offers two predefined targets - one for the stable released versions and one for the SNAPSHOT/nightly Gemini Blueprint jars. The latter
+        does not contain any jars as it is expected for the user to download them manually. Simply locate the path where the plug-ins should be located (3), enter that folder 
+        and do a </p><pre class="programlisting">mvn install</pre><p>The latest Gemini Blueprint SNAPSHOT will be downloaded along with all of its dependencies.
+        Simply click on the reload button (4) and Eclipse will pick up the bundles. </p></li><li><p class="title"><b>Select PDE Perspective</b></p><p>Once the installation is completed just select the PDE perspective:</p><p>
+		  <span class="inlinemediaobject"><img src="images/pde/select-pde-1.png" align="left"></span>
+		  <span class="inlinemediaobject"><img src="images/pde/select-pde-2.png" align="central"></span>
+          
+        </p><p>and the Gemini Blueprint and its dependencies should be available in the plug-ins view:</p><p>
+		  <span class="inlinemediaobject"><img src="images/pde/select-plugins-view.png" align="left"></span>
+
+		  <span class="inlinemediaobject"><img src="images/pde/show-plugins.png" align="central"></span>          
+        </p></li></ol></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="appendix-security.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="appendix-tips.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix&nbsp;A.&nbsp;Security Integration&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;Appendix&nbsp;C.&nbsp;Useful OSGi tips</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-roadmap.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-roadmap.html
new file mode 100644
index 0000000..bc54dd9
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-roadmap.html
@@ -0,0 +1,24 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Appendix&nbsp;D.&nbsp;Roadmap</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="appendixes.html" title="Part&nbsp;IV.&nbsp;Appendixes"><link rel="prev" href="appendix-tips.html" title="Appendix&nbsp;C.&nbsp;Useful OSGi tips"><link rel="next" href="appendix-osgi-repo.html" title="Appendix&nbsp;E.&nbsp;Gemini Blueprint OSGi Repository"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="appendix-roadmap"></a>Appendix&nbsp;D.&nbsp;Roadmap</h2></div></div></div><p>
+		This appendix documents features on the Gemini Blueprint
+		roadmap. The design of these features specified here is subject
+		to change. As a most up to date source, please see
+		<a xmlns:xlink="http://www.w3.org/1999/xlink" href="https://bugs.eclipse.org/bugs/buglist.cgi?product=Gemini.Blueprint" target="_top">
+			our
+		</a>
+		issue tracker.
+	</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d18e6580"></a>D.1.&nbsp;Start Level Integration</h2></div></div></div><p>A future release of Gemini Blueprint may offer the following
+      additional guarantee with respect to application context creation and
+      start levels:</p><p>Application context creation happens asynchronously. However, the
+      extender bundle does guarantee that the creation of all application
+      contexts for bundles at start level <code class="literal">n</code> will be
+      complete before the creation of any application context at start level
+      <code class="literal">m</code>, where <code class="literal">m &gt; n</code>. Care must
+      therefore be taken not to introduce any mandatory dependencies on
+      services exported by bundles with higher start levels or a deadlock will
+      be introduced.</p><p>In a similar vein, when shutting down the extender bundle,
+      application contexts at start level <code class="literal">m</code> will be shut
+      down before application contexts at start level <code class="literal">n</code>,
+      where <code class="literal">m &gt; n</code>.</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="appendix-tips.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="appendix-osgi-repo.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix&nbsp;C.&nbsp;Useful OSGi tips&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;Appendix&nbsp;E.&nbsp;Gemini Blueprint OSGi Repository</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-schema.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-schema.html
new file mode 100644
index 0000000..13bc0b5
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-schema.html
@@ -0,0 +1,922 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Appendix&nbsp;F.&nbsp;Gemini Blueprint Schema</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="appendixes.html" title="Part&nbsp;IV.&nbsp;Appendixes"><link rel="prev" href="appendix-osgi-repo.html" title="Appendix&nbsp;E.&nbsp;Gemini Blueprint OSGi Repository"><link rel="next" href="appendix-ack.html" title="Appendix&nbsp;G.&nbsp;Acknowledgments"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="appendix-schema"></a>Appendix&nbsp;F.&nbsp;Gemini Blueprint Schema</h2></div></div></div><p>Gemini Blueprint Core Schema</p><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8" standalone="no"?</span>&gt;
+
+&lt;<span class="hl-tag">xsd:schema</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint"</span>
+        <span class="hl-attribute">xmlns:xsd</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema"</span>
+        <span class="hl-attribute">xmlns:beans</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>
+        <span class="hl-attribute">xmlns:tool</span>=<span class="hl-value">"http://www.springframework.org/schema/tool"</span>
+        <span class="hl-attribute">targetNamespace</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint"</span>
+        <span class="hl-attribute">elementFormDefault</span>=<span class="hl-value">"qualified"</span>
+        <span class="hl-attribute">attributeFormDefault</span>=<span class="hl-value">"unqualified"</span>
+        <span class="hl-attribute">version</span>=<span class="hl-value">"1.0.0"</span>&gt;
+
+    &lt;<span class="hl-tag">xsd:import</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"http://www.w3.org/XML/1998/namespace"</span>/&gt;
+    &lt;<span class="hl-tag">xsd:import</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>/&gt;
+    &lt;<span class="hl-tag">xsd:import</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"http://www.springframework.org/schema/tool"</span>/&gt;
+
+    &lt;<span class="hl-tag">xsd:annotation</span>&gt;
+        &lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Namespace</span> <span class="hl-attribute">support</span> <span class="hl-attribute">for</span> <span class="hl-attribute">the</span> <span class="hl-attribute">core</span> <span class="hl-attribute">services</span> <span class="hl-attribute">provided</span> <span class="hl-attribute">by</span> <span class="hl-attribute">Eclipse</span> <span class="hl-attribute">Gemini</span> <span class="hl-attribute">Blueprint.</span>
+        <span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+    
+    <span class="hl-attribute">&lt;xsd:attributeGroup</span> <span class="hl-attribute">name</span>=<span class="hl-value">"defaults"</span>&gt;
+    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[Defaults</span> <span class="hl-attribute">for</span> <span class="hl-attribute">Gemini</span> <span class="hl-attribute">Blueprint</span> <span class="hl-attribute">declarations.]]&gt;</span>
+    		<span class="hl-attribute">&lt;/xsd:documentation&gt;</span>
+    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+    	<span class="hl-attribute">&lt;!--</span> <span class="hl-attribute">attributes</span> <span class="hl-attribute">--&gt;</span>
+    	<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"default-timeout"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:nonNegativeInteger"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"30000"</span>&gt;
+    		&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    			&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Default</span> <span class="hl-attribute">timeout</span> <span class="hl-attribute">(in</span> <span class="hl-attribute">milliseconds)</span> <span class="hl-attribute">for</span> <span class="hl-attribute">all</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">(service</span> <span class="hl-attribute">importers)</span> <span class="hl-attribute">elements</span> <span class="hl-attribute">that</span> <span class="hl-attribute">do</span> <span class="hl-attribute">not</span> <span class="hl-attribute">explicitly</span> <span class="hl-attribute">specify</span> <span class="hl-attribute">one.</span>
+    <span class="hl-attribute">Default</span> <span class="hl-attribute">value</span> <span class="hl-attribute">is</span> <span class="hl-attribute">300000</span> <span class="hl-attribute">ms</span> <span class="hl-attribute">(5</span> <span class="hl-attribute">minutes).</span>
+    			<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+    		<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+    	<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+    	<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"default-availablility"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TavailabilityOptions"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"mandatory"</span>&gt;
+    		&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    			&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Default</span> <span class="hl-attribute">availability</span> <span class="hl-attribute">for</span> <span class="hl-attribute">all</span> <span class="hl-attribute">OSGi</span> <span class="hl-attribute">references</span> <span class="hl-attribute">(singular</span> <span class="hl-attribute">or</span> <span class="hl-attribute">collections)</span> <span class="hl-attribute">elements</span> <span class="hl-attribute">that</span> <span class="hl-attribute">do</span> <span class="hl-attribute">not</span> <span class="hl-attribute">explicitly</span> <span class="hl-attribute">specify</span> <span class="hl-attribute">one.</span>
+    <span class="hl-attribute">Default</span> <span class="hl-attribute">value</span> <span class="hl-attribute">is</span> <span class="hl-attribute">'mandatory'</span> <span class="hl-attribute">which</span> <span class="hl-attribute">means</span> <span class="hl-attribute">that</span> <span class="hl-attribute">a</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">must</span> <span class="hl-attribute">exist</span> <span class="hl-attribute">while</span> <span class="hl-attribute">'optional'</span> <span class="hl-attribute">indicates</span> <span class="hl-attribute">that</span> <span class="hl-attribute">it</span> <span class="hl-attribute">is</span> 
+    <span class="hl-attribute">acceptable</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">no</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service.</span>
+        		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+    	<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"default-cardinality"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TdefaultCardinalityOptions"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"1..X"</span>&gt;
+    		&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    			&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">As</span> <span class="hl-attribute">of</span> <span class="hl-attribute">Eclipse</span> <span class="hl-attribute">Gemini</span> <span class="hl-attribute">Blueprint,</span> <span class="hl-attribute">'default-cardinality'</span> <span class="hl-attribute">has</span> <span class="hl-attribute">been</span> <span class="hl-attribute">replaced</span> <span class="hl-attribute">by</span> <span class="hl-attribute">'default-availability'</span> <span class="hl-attribute">attribute.</span>
+    
+    <span class="hl-attribute">Default</span> <span class="hl-attribute">cardinality</span> <span class="hl-attribute">(of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">relationship</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service(s))</span> <span class="hl-attribute">for</span> <span class="hl-attribute">all</span> <span class="hl-attribute">OSGi</span> <span class="hl-attribute">references</span> <span class="hl-attribute">(singular</span> <span class="hl-attribute">or</span> <span class="hl-attribute">collections)</span> 
+    <span class="hl-attribute">elements</span> <span class="hl-attribute">that</span> <span class="hl-attribute">do</span> <span class="hl-attribute">not</span> <span class="hl-attribute">explicitly</span> <span class="hl-attribute">specify</span> <span class="hl-attribute">one.</span>
+    <span class="hl-attribute">Default</span> <span class="hl-attribute">value</span> <span class="hl-attribute">is</span> <span class="hl-attribute">'1..X'</span> <span class="hl-attribute">(resolved</span> <span class="hl-attribute">to</span> <span class="hl-attribute">'1..1'</span> <span class="hl-attribute">for</span> <span class="hl-attribute">osgi:reference</span> <span class="hl-attribute">and</span> <span class="hl-attribute">'1..N'</span> <span class="hl-attribute">for</span> <span class="hl-attribute">osgi:list/set)</span> <span class="hl-attribute">which</span> <span class="hl-attribute">means</span> <span class="hl-attribute">that</span> <span class="hl-attribute">a</span> <span class="hl-attribute">backing</span> 
+    <span class="hl-attribute">service</span> <span class="hl-attribute">must</span> <span class="hl-attribute">exist</span> <span class="hl-attribute">(this</span> <span class="hl-attribute">is</span> <span class="hl-attribute">a</span> <span class="hl-attribute">mandatory</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference).</span> <span class="hl-attribute">A</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'0..X'</span> <span class="hl-attribute">(resolved</span> <span class="hl-attribute">to</span> <span class="hl-attribute">'0..1'</span> <span class="hl-attribute">for</span> <span class="hl-attribute">osgi:reference</span> 
+    <span class="hl-attribute">and</span> <span class="hl-attribute">'0..N'</span> <span class="hl-attribute">for</span> <span class="hl-attribute">osgi:list/set)</span> <span class="hl-attribute">indicates</span> <span class="hl-attribute">that</span> <span class="hl-attribute">it</span> <span class="hl-attribute">is</span> <span class="hl-attribute">acceptable</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">no</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">(an</span> <span class="hl-attribute">optional</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference).</span>
+        		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:attributeGroup&gt;</span>
+
+    <span class="hl-attribute">&lt;xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TavailabilityOptions"</span>&gt;
+        &lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"mandatory"</span>&gt;
+            	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+            		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Mandatory</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">-</span> <span class="hl-attribute">a</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">must</span> <span class="hl-attribute">exist.</span>
+            		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+            	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+            <span class="hl-attribute">&lt;/xsd:enumeration&gt;</span>
+            <span class="hl-attribute">&lt;xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"optional"</span>&gt;
+            	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+            		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Optional</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">-</span> <span class="hl-attribute">A</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">can</span> <span class="hl-attribute">be</span> <span class="hl-attribute">missing.</span>
+            		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+            	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+            <span class="hl-attribute">&lt;/xsd:enumeration&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:restriction&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:simpleType&gt;</span>
+        
+    <span class="hl-attribute">&lt;xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TdefaultCardinalityOptions"</span>&gt;
+        &lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"1..X"</span>&gt;
+            	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+            		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">A</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">must</span> <span class="hl-attribute">exist</span> <span class="hl-attribute">(this</span> <span class="hl-attribute">is</span> <span class="hl-attribute">a</span> <span class="hl-attribute">mandatory</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference).</span>
+            		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+            	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+            <span class="hl-attribute">&lt;/xsd:enumeration&gt;</span>
+            <span class="hl-attribute">&lt;xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"0..X"</span>&gt;
+            	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+            		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">A</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">can</span> <span class="hl-attribute">be</span> <span class="hl-attribute">missing</span> <span class="hl-attribute">(this</span> <span class="hl-attribute">is</span> <span class="hl-attribute">an</span> <span class="hl-attribute">optional</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference).</span>
+            		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+            	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+            <span class="hl-attribute">&lt;/xsd:enumeration&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:restriction&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:simpleType&gt;</span>
+	
+    <span class="hl-attribute">&lt;!--</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">--&gt;</span>
+    <span class="hl-attribute">&lt;xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"reference"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TsingleReference"</span>&gt;
+        &lt;<span class="hl-tag">xsd:annotation</span>&gt;
+            &lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">to</span> <span class="hl-attribute">a</span> <span class="hl-attribute">service</span> <span class="hl-attribute">obtained</span> <span class="hl-attribute">via</span> <span class="hl-attribute">the</span> <span class="hl-attribute">OSGi</span> <span class="hl-attribute">service</span> <span class="hl-attribute">registry.</span>
+            <span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:element&gt;</span>
+
+    <span class="hl-attribute">&lt;xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"Treference"</span>&gt;
+        &lt;<span class="hl-tag">xsd:complexContent</span>&gt;
+            &lt;<span class="hl-tag">xsd:extension</span> <span class="hl-attribute">base</span>=<span class="hl-value">"beans:identifiedType"</span>&gt;
+                &lt;<span class="hl-tag">xsd:sequence</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"interfaces"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"beans:listOrSetType"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+                    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">The</span> <span class="hl-attribute">set</span> <span class="hl-attribute">of</span> <span class="hl-attribute">service</span> <span class="hl-attribute">interfaces</span> <span class="hl-attribute">that</span> <span class="hl-attribute">the</span> <span class="hl-attribute">services</span> <span class="hl-attribute">obtained</span> <span class="hl-attribute">via</span> <span class="hl-attribute">the</span> <span class="hl-attribute">registry</span> <span class="hl-attribute">are</span> <span class="hl-attribute">required</span> <span class="hl-attribute">to</span> <span class="hl-attribute">support.</span>
+    <span class="hl-attribute">By</span> <span class="hl-attribute">convention,</span> <span class="hl-attribute">the</span> <span class="hl-attribute">interface</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">is</span> <span class="hl-attribute">a</span> <span class="hl-attribute">Java</span> <span class="hl-attribute">interface</span> <span class="hl-attribute">type,</span> <span class="hl-attribute">but</span> <span class="hl-attribute">may</span> <span class="hl-attribute">also</span> <span class="hl-attribute">be</span> <span class="hl-attribute">a</span> <span class="hl-attribute">(non-final)</span>
+    <span class="hl-attribute">class</span> <span class="hl-attribute">type.</span>
+                    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                    <span class="hl-attribute">&lt;/xsd:element&gt;</span>
+                    <span class="hl-attribute">&lt;xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"reference-listener"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"Tlistener"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"unbounded"</span>&gt;
+                      &lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                      	&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">listener</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">receive</span> <span class="hl-attribute">notification</span> <span class="hl-attribute">when</span> <span class="hl-attribute">a</span> <span class="hl-attribute">service</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">this</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">is</span> 
+    <span class="hl-attribute">bound</span> <span class="hl-attribute">or</span> <span class="hl-attribute">unbound.</span>
+                      	<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                      <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                    <span class="hl-attribute">&lt;/xsd:element&gt;</span>
+                    <span class="hl-attribute">&lt;xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"listener"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"Tlistener"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"unbounded"</span>&gt;
+                      &lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                      	&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">listener</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">receive</span> <span class="hl-attribute">notification</span> <span class="hl-attribute">when</span> <span class="hl-attribute">a</span> <span class="hl-attribute">service</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">this</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">is</span> 
+    <span class="hl-attribute">bound</span> <span class="hl-attribute">or</span> <span class="hl-attribute">unbound.</span> <span class="hl-attribute">Deprecated</span> <span class="hl-attribute">since</span> <span class="hl-attribute">Gemini</span> <span class="hl-attribute">Blueprint,</span> <span class="hl-attribute">in</span> <span class="hl-attribute">favour</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'reference-listener'.</span> 
+                      	<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                      <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                    <span class="hl-attribute">&lt;/xsd:element&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:sequence&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"interface"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:token"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">The</span> <span class="hl-attribute">service</span> <span class="hl-attribute">interface</span> <span class="hl-attribute">that</span> <span class="hl-attribute">the</span> <span class="hl-attribute">services</span> <span class="hl-attribute">obtained</span> <span class="hl-attribute">via</span> <span class="hl-attribute">the</span> <span class="hl-attribute">registry</span> <span class="hl-attribute">are</span> <span class="hl-attribute">required</span> <span class="hl-attribute">to</span> <span class="hl-attribute">support.</span>
+    <span class="hl-attribute">By</span> <span class="hl-attribute">convention</span> <span class="hl-attribute">this</span> <span class="hl-attribute">is</span> <span class="hl-attribute">a</span> <span class="hl-attribute">Java</span> <span class="hl-attribute">interface</span> <span class="hl-attribute">type,</span> <span class="hl-attribute">but</span> <span class="hl-attribute">may</span> <span class="hl-attribute">also</span> <span class="hl-attribute">be</span> <span class="hl-attribute">a</span> <span class="hl-attribute">(non-final)</span> <span class="hl-attribute">class</span> <span class="hl-attribute">type.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                		<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+                			<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+                				<span class="hl-attribute">&lt;tool:expected-type</span> <span class="hl-attribute">type</span>=<span class="hl-value">"java.lang.Class"</span> /&gt;
+                			&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+                		&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;
+                	&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+                &lt;<span class="hl-tag">/xsd:attribute</span>&gt;
+                &lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"filter"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span>&gt;
+                      &lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                      	&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">an</span> <span class="hl-attribute">OSGi</span> <span class="hl-attribute">filter</span> <span class="hl-attribute">expression</span> <span class="hl-attribute">that</span> <span class="hl-attribute">is</span> <span class="hl-attribute">used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">constrain</span> <span class="hl-attribute">the</span> <span class="hl-attribute">set</span> <span class="hl-attribute">of</span> <span class="hl-attribute">matching</span> <span class="hl-attribute">services</span>
+    <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">registry.</span> 
+                      	<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                      <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"depends-on"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+					&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+						&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">refer</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">name</span> <span class="hl-attribute">of</span> <span class="hl-attribute">another</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">that</span> <span class="hl-attribute">this</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">depends</span> <span class="hl-attribute">on.</span> <span class="hl-attribute">Ensures</span> <span class="hl-attribute">that</span> <span class="hl-attribute">the</span>
+	<span class="hl-attribute">service</span> <span class="hl-attribute">registry</span> <span class="hl-attribute">look-up</span> <span class="hl-attribute">does</span> <span class="hl-attribute">not</span> <span class="hl-attribute">happen</span> <span class="hl-attribute">until</span> <span class="hl-attribute">after</span> <span class="hl-attribute">the</span> <span class="hl-attribute">dependent</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">has</span> <span class="hl-attribute">been</span> <span class="hl-attribute">created</span> 
+	<span class="hl-attribute">(most</span> <span class="hl-attribute">commonly</span> <span class="hl-attribute">used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">refer</span> <span class="hl-attribute">to</span> <span class="hl-attribute">a</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">bean).</span>
+						<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+					<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>                
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"bean-name"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Convenient</span> <span class="hl-attribute">shortcut</span> <span class="hl-attribute">for</span> <span class="hl-attribute">specifying</span> <span class="hl-attribute">a</span> <span class="hl-attribute">filter</span> <span class="hl-attribute">expression</span> <span class="hl-attribute">that</span> <span class="hl-attribute">matches</span> <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bean-name</span> <span class="hl-attribute">property</span>
+    <span class="hl-attribute">that</span> <span class="hl-attribute">is</span> <span class="hl-attribute">automatically</span> <span class="hl-attribute">advertised</span> <span class="hl-attribute">for</span> <span class="hl-attribute">beans</span> <span class="hl-attribute">published</span> <span class="hl-attribute">using</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">element.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"context-class-loader"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TreferenceClassLoaderOptions"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"client"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">how</span> <span class="hl-attribute">the</span> <span class="hl-attribute">context</span> <span class="hl-attribute">class</span> <span class="hl-attribute">loader</span> <span class="hl-attribute">is</span> <span class="hl-attribute">managed</span> <span class="hl-attribute">when</span> <span class="hl-attribute">invoking</span> <span class="hl-attribute">operations</span> <span class="hl-attribute">on</span> <span class="hl-attribute">a</span> <span class="hl-attribute">service</span>
+    <span class="hl-attribute">backing</span> <span class="hl-attribute">this</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference.</span> <span class="hl-attribute">The</span> <span class="hl-attribute">default</span> <span class="hl-attribute">value</span> <span class="hl-attribute">is</span> <span class="hl-attribute">'client'</span> <span class="hl-attribute">which</span> <span class="hl-attribute">means</span> <span class="hl-attribute">that</span> <span class="hl-attribute">the</span> <span class="hl-attribute">context</span>
+    <span class="hl-attribute">class</span> <span class="hl-attribute">loader</span> <span class="hl-attribute">has</span> <span class="hl-attribute">visibility</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">resources</span> <span class="hl-attribute">on</span> <span class="hl-attribute">this</span> <span class="hl-attribute">bundle's</span> <span class="hl-attribute">classpath.</span> <span class="hl-attribute">Alternate</span>
+    <span class="hl-attribute">options</span> <span class="hl-attribute">are</span> <span class="hl-attribute">'service-provider'</span> <span class="hl-attribute">which</span> <span class="hl-attribute">means</span> <span class="hl-attribute">that</span> <span class="hl-attribute">the</span> <span class="hl-attribute">context</span> <span class="hl-attribute">class</span> <span class="hl-attribute">loader</span> <span class="hl-attribute">has</span> <span class="hl-attribute">visibility</span> <span class="hl-attribute">of</span> 
+    <span class="hl-attribute">resources</span> <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">classpath</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">that</span> <span class="hl-attribute">exported</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service,</span> <span class="hl-attribute">and</span> <span class="hl-attribute">'unmanaged'</span>
+    <span class="hl-attribute">which</span> <span class="hl-attribute">does</span> <span class="hl-attribute">not</span> <span class="hl-attribute">do</span> <span class="hl-attribute">any</span> <span class="hl-attribute">management</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">context</span> <span class="hl-attribute">class</span> <span class="hl-attribute">loader.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+            <span class="hl-attribute">&lt;/xsd:extension&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:complexContent&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+    
+    <span class="hl-attribute">&lt;xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TreferenceClassLoaderOptions"</span>&gt;
+        &lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"client"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"service-provider"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"unmanaged"</span>/&gt;
+        &lt;<span class="hl-tag">/xsd:restriction</span>&gt;
+    &lt;<span class="hl-tag">/xsd:simpleType</span>&gt;
+
+    &lt;<span class="hl-tag">xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"Tlistener"</span>&gt;
+    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">listener</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">notified</span> <span class="hl-attribute">when</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">the</span> <span class="hl-attribute">enclosing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">element</span> <span class="hl-attribute">is</span> <span class="hl-attribute">bound</span> <span class="hl-attribute">or</span> 
+    <span class="hl-attribute">unbound.</span> <span class="hl-attribute">Use</span> <span class="hl-attribute">either</span> <span class="hl-attribute">the</span> <span class="hl-attribute">'ref'</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">or</span> <span class="hl-attribute">a</span> <span class="hl-attribute">nested</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">declaration</span> <span class="hl-attribute">for</span> <span class="hl-attribute">the</span> <span class="hl-attribute">listener</span> <span class="hl-attribute">bean.</span>
+    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;xsd:sequence</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+            &lt;<span class="hl-comment">!-- nested bean declaration --</span>&gt;
+            &lt;<span class="hl-tag">xsd:any</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"##other"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">processContents</span>=<span class="hl-value">"skip"</span>/&gt;
+        &lt;<span class="hl-tag">/xsd:sequence</span>&gt;
+
+        &lt;<span class="hl-comment">!-- shortcut for bean references --</span>&gt;
+        &lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"ref"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+        	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+        		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Refers</span> <span class="hl-attribute">by</span> <span class="hl-attribute">name</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">receive</span> <span class="hl-attribute">bind</span> <span class="hl-attribute">and</span> <span class="hl-attribute">unbind</span> <span class="hl-attribute">events</span>
+        		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+        <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"bind-method"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:token"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+        	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+        		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">The</span> <span class="hl-attribute">name</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">method</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">invoked</span> <span class="hl-attribute">when</span> <span class="hl-attribute">a</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">is</span> <span class="hl-attribute">bound.</span>
+        		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+        <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"unbind-method"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:token"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+        	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+        		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">The</span> <span class="hl-attribute">name</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">method</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">invoked</span> <span class="hl-attribute">when</span> <span class="hl-attribute">a</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">is</span> <span class="hl-attribute">unbound.</span>
+        		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+    
+    <span class="hl-attribute">&lt;!--</span> <span class="hl-attribute">single</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">--&gt;</span>
+    <span class="hl-attribute">&lt;xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TsingleReference"</span>&gt;
+        &lt;<span class="hl-tag">xsd:complexContent</span>&gt;
+            &lt;<span class="hl-tag">xsd:extension</span> <span class="hl-attribute">base</span>=<span class="hl-value">"Treference"</span>&gt;
+                 &lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"availability"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TavailabilityOptions"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                      	&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">the</span> <span class="hl-attribute">required</span> <span class="hl-attribute">availability</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service.</span> <span class="hl-attribute">If</span> <span class="hl-attribute">not</span> <span class="hl-attribute">specified,</span> 
+    <span class="hl-attribute">the</span> <span class="hl-attribute">default-availability</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">will</span> <span class="hl-attribute">apply.</span> <span class="hl-attribute">'mandatory'</span> <span class="hl-attribute">means</span> <span class="hl-attribute">that</span> <span class="hl-attribute">a</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> 
+    <span class="hl-attribute">must</span> <span class="hl-attribute">exist,</span> <span class="hl-attribute">'optional'</span> <span class="hl-attribute">indicates</span> <span class="hl-attribute">that</span> <span class="hl-attribute">it</span> <span class="hl-attribute">is</span> <span class="hl-attribute">acceptable</span> <span class="hl-attribute">to</span> <span class="hl-attribute">have</span> <span class="hl-attribute">no</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service.</span>
+                      	<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                      <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                 <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                 <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"cardinality"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TsingleReferenceCardinality"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                      	&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">As</span> <span class="hl-attribute">of</span> <span class="hl-attribute">Gemini</span> <span class="hl-attribute">Blueprint,</span> <span class="hl-attribute">'cardinality'</span> <span class="hl-attribute">has</span> <span class="hl-attribute">been</span> <span class="hl-attribute">replaced</span> <span class="hl-attribute">by</span> <span class="hl-attribute">the</span> <span class="hl-attribute">'availability'</span> <span class="hl-attribute">attribute.</span>
+	                      	
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">the</span> <span class="hl-attribute">required</span> <span class="hl-attribute">cardinality</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">relationship</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service.</span> <span class="hl-attribute">If</span> <span class="hl-attribute">not</span> <span class="hl-attribute">specified,</span> 
+    <span class="hl-attribute">the</span> <span class="hl-attribute">default-cardinality</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">will</span> <span class="hl-attribute">apply.</span> <span class="hl-attribute">A</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'1..1'</span> <span class="hl-attribute">means</span> <span class="hl-attribute">that</span> <span class="hl-attribute">a</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> 
+    <span class="hl-attribute">must</span> <span class="hl-attribute">exist</span> <span class="hl-attribute">(this</span> <span class="hl-attribute">is</span> <span class="hl-attribute">a</span> <span class="hl-attribute">mandatory</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference).</span> <span class="hl-attribute">A</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'0..1'</span> <span class="hl-attribute">indicates</span> <span class="hl-attribute">that</span> <span class="hl-attribute">it</span> <span class="hl-attribute">is</span> 
+    <span class="hl-attribute">acceptable</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">no</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">(an</span> <span class="hl-attribute">optional</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference).</span>
+                      	<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                      <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+				<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"timeout"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:nonNegativeInteger"</span>&gt;
+                    &lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                      	&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">For</span> <span class="hl-attribute">a</span> <span class="hl-attribute">'reference'</span> <span class="hl-attribute">element,</span> <span class="hl-attribute">the</span> <span class="hl-attribute">amount</span> <span class="hl-attribute">of</span> <span class="hl-attribute">time</span> <span class="hl-attribute">(in</span> <span class="hl-attribute">milliseconds)</span> <span class="hl-attribute">to</span> <span class="hl-attribute">wait</span> <span class="hl-attribute">for</span> <span class="hl-attribute">a</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> 
+    <span class="hl-attribute">available</span> <span class="hl-attribute">when</span> <span class="hl-attribute">an</span> <span class="hl-attribute">operation</span> <span class="hl-attribute">is</span> <span class="hl-attribute">invoked.</span> <span class="hl-attribute">If</span> <span class="hl-attribute">not</span> <span class="hl-attribute">specified,</span> <span class="hl-attribute">the</span> <span class="hl-attribute">default-timeout</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">will</span> <span class="hl-attribute">apply.</span>
+    <span class="hl-attribute">See</span> <span class="hl-attribute">also</span> <span class="hl-attribute">the</span> <span class="hl-attribute">default-timeout</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">osgi</span> <span class="hl-attribute">element.</span>
+                      	<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                      <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"sticky"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:boolean"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"true"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">whether</span> <span class="hl-attribute">the</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">should</span> <span class="hl-attribute">be</span> <span class="hl-attribute">changed</span> <span class="hl-attribute">if</span> <span class="hl-attribute">a</span> <span class="hl-attribute">'better'</span> <span class="hl-attribute">OSGi</span> <span class="hl-attribute">service</span> <span class="hl-attribute">becomes</span>
+    <span class="hl-attribute">available.</span> <span class="hl-attribute">If</span> <span class="hl-attribute">'true',</span> <span class="hl-attribute">the</span> <span class="hl-attribute">proxy</span> <span class="hl-attribute">will</span> <span class="hl-attribute">rebind</span> <span class="hl-attribute">only</span> <span class="hl-attribute">if</span> <span class="hl-attribute">the</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">is</span> <span class="hl-attribute">no</span> <span class="hl-attribute">longer</span> <span class="hl-attribute">available.</span> 
+    <span class="hl-attribute">If</span> <span class="hl-attribute">'false',</span> <span class="hl-attribute">the</span> <span class="hl-attribute">rebind</span> <span class="hl-attribute">will</span> <span class="hl-attribute">occur</span> <span class="hl-attribute">every</span> <span class="hl-attribute">time</span> <span class="hl-attribute">a</span> <span class="hl-attribute">'better'</span> <span class="hl-attribute">candidate</span> <span class="hl-attribute">appears.</span> <span class="hl-attribute">A</span> <span class="hl-attribute">better</span> <span class="hl-attribute">service</span> <span class="hl-attribute">is</span>
+    <span class="hl-attribute">defined</span> <span class="hl-attribute">by</span> <span class="hl-attribute">having</span> <span class="hl-attribute">either</span> <span class="hl-attribute">a</span> <span class="hl-attribute">higher</span> <span class="hl-attribute">ranking</span> <span class="hl-attribute">or</span> <span class="hl-attribute">the</span> <span class="hl-attribute">same</span> <span class="hl-attribute">ranking</span> <span class="hl-attribute">and</span> <span class="hl-attribute">a</span> <span class="hl-attribute">lower</span> <span class="hl-attribute">service</span> <span class="hl-attribute">id.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+            <span class="hl-attribute">&lt;/xsd:extension&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:complexContent&gt;</span>
+   <span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+   
+   <span class="hl-attribute">&lt;xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TsingleReferenceCardinality"</span>&gt;
+        &lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"1..1"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"0..1"</span>/&gt;
+        &lt;<span class="hl-tag">/xsd:restriction</span>&gt;
+   &lt;<span class="hl-tag">/xsd:simpleType</span>&gt;
+
+	&lt;<span class="hl-comment">!-- reference collections (set, list) --</span>&gt;
+	&lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"list"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TreferenceCollection"</span>&gt;
+		&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+			&lt;<span class="hl-tag">xsd:documentation</span> <span class="hl-attribute">source</span>=<span class="hl-value">"java:org.eclipse.gemini.blueprint.service.importer.support.OsgiServiceCollectionProxyFactoryBean"</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">of</span> <span class="hl-attribute">type</span> <span class="hl-attribute">'List'</span> <span class="hl-attribute">that</span> <span class="hl-attribute">contains</span> <span class="hl-attribute">all</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">services</span> <span class="hl-attribute">matching</span> <span class="hl-attribute">the</span> <span class="hl-attribute">given</span> <span class="hl-attribute">criteria.</span>
+	<span class="hl-attribute">The</span> <span class="hl-attribute">list</span> <span class="hl-attribute">members</span> <span class="hl-attribute">are</span> <span class="hl-attribute">managed</span> <span class="hl-attribute">dynamically</span> <span class="hl-attribute">as</span> <span class="hl-attribute">matching</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">services</span> <span class="hl-attribute">come</span> <span class="hl-attribute">and</span> <span class="hl-attribute">go.</span>
+			<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+			<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+				<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+					<span class="hl-attribute">&lt;tool:exports</span> <span class="hl-attribute">type</span>=<span class="hl-value">"java.util.List"</span>/&gt;
+				&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+			&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;			
+		&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+	&lt;<span class="hl-tag">/xsd:element</span>&gt;
+
+	&lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"set"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TreferenceCollection"</span>&gt;
+		&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+			&lt;<span class="hl-tag">xsd:documentation</span> <span class="hl-attribute">source</span>=<span class="hl-value">"java:org.eclipse.gemini.blueprint.service.importer.support.OsgiServiceCollectionProxyFactoryBean"</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">of</span> <span class="hl-attribute">type</span> <span class="hl-attribute">'Set'</span> <span class="hl-attribute">that</span> <span class="hl-attribute">contains</span> <span class="hl-attribute">all</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">services</span> <span class="hl-attribute">matching</span> <span class="hl-attribute">the</span> <span class="hl-attribute">given</span> <span class="hl-attribute">criteria.</span>
+	<span class="hl-attribute">The</span> <span class="hl-attribute">set</span> <span class="hl-attribute">members</span> <span class="hl-attribute">are</span> <span class="hl-attribute">managed</span> <span class="hl-attribute">dynamically</span> <span class="hl-attribute">as</span> <span class="hl-attribute">matching</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">services</span> <span class="hl-attribute">come</span> <span class="hl-attribute">and</span> <span class="hl-attribute">go.</span>
+			<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+			<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+				<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+					<span class="hl-attribute">&lt;tool:exports</span> <span class="hl-attribute">type</span>=<span class="hl-value">"java.util.Set"</span>/&gt;
+				&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+			&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;			
+		&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+	&lt;<span class="hl-tag">/xsd:element</span>&gt;
+
+	&lt;<span class="hl-tag">xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TreferenceCollection"</span>&gt;
+		&lt;<span class="hl-tag">xsd:complexContent</span>&gt;
+			&lt;<span class="hl-tag">xsd:extension</span> <span class="hl-attribute">base</span>=<span class="hl-value">"Treference"</span>&gt;
+				&lt;<span class="hl-tag">xsd:sequence</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+					&lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"comparator"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"Tcomparator"</span>&gt;
+						&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+							&lt;<span class="hl-tag">xsd:documentation</span> <span class="hl-attribute">source</span>=<span class="hl-value">"java:java.util.Comparator"</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">define</span> <span class="hl-attribute">an</span> <span class="hl-attribute">inline</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">of</span> <span class="hl-attribute">type</span> <span class="hl-attribute">Comparator</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">sort</span> <span class="hl-attribute">the</span> <span class="hl-attribute">matching</span> <span class="hl-attribute">services.</span>
+							<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+							<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+								<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+									<span class="hl-attribute">&lt;tool:expected-type</span> <span class="hl-attribute">type</span>=<span class="hl-value">"java.util.Comparator"</span> /&gt;
+  								&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+							&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;
+						&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+					&lt;<span class="hl-tag">/xsd:element</span>&gt;
+				&lt;<span class="hl-tag">/xsd:sequence</span>&gt;
+				&lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"comparator-ref"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+					&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+						&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">refer</span> <span class="hl-attribute">to</span> <span class="hl-attribute">a</span> <span class="hl-attribute">named</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">implementing</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Comparator</span> <span class="hl-attribute">interface</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">used</span> <span class="hl-attribute">to</span> 
+	<span class="hl-attribute">sort</span> <span class="hl-attribute">the</span> <span class="hl-attribute">matching</span> <span class="hl-attribute">services.</span>
+						<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+					<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+				<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+			    <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"availability"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TavailabilityOptions"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                      	&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">the</span> <span class="hl-attribute">required</span> <span class="hl-attribute">availability</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service.</span> <span class="hl-attribute">If</span> <span class="hl-attribute">not</span> <span class="hl-attribute">specified,</span> 
+    <span class="hl-attribute">the</span> <span class="hl-attribute">default-availability</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">will</span> <span class="hl-attribute">apply.</span> <span class="hl-attribute">'mandatory'</span> <span class="hl-attribute">means</span> <span class="hl-attribute">that</span> <span class="hl-attribute">a</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> 
+    <span class="hl-attribute">must</span> <span class="hl-attribute">exist,</span> <span class="hl-attribute">'optional'</span> <span class="hl-attribute">indicates</span> <span class="hl-attribute">that</span> <span class="hl-attribute">it</span> <span class="hl-attribute">is</span> <span class="hl-attribute">acceptable</span> <span class="hl-attribute">to</span> <span class="hl-attribute">have</span> <span class="hl-attribute">no</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service.</span>
+                      	<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                      <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+			    <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"cardinality"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TcollectionCardinality"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                      	&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">As</span> <span class="hl-attribute">of</span> <span class="hl-attribute">Gemini</span> <span class="hl-attribute">Blueprint,</span> <span class="hl-attribute">'cardinality'</span> <span class="hl-attribute">has</span> <span class="hl-attribute">been</span> <span class="hl-attribute">replaced</span> <span class="hl-attribute">by</span> <span class="hl-attribute">the</span> <span class="hl-attribute">'availability'</span> <span class="hl-attribute">attribute.</span>
+	                      	
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">the</span> <span class="hl-attribute">required</span> <span class="hl-attribute">cardinality</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">relationship</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">services.</span> <span class="hl-attribute">If</span> <span class="hl-attribute">not</span> <span class="hl-attribute">specified,</span> 
+    <span class="hl-attribute">the</span> <span class="hl-attribute">default-cardinality</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">will</span> <span class="hl-attribute">apply.</span> <span class="hl-attribute">A</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'1..N'</span> <span class="hl-attribute">means</span> <span class="hl-attribute">that</span> <span class="hl-attribute">at</span> <span class="hl-attribute">least</span> <span class="hl-attribute">one</span> <span class="hl-attribute">backing</span> 
+    <span class="hl-attribute">service</span> <span class="hl-attribute">must</span> <span class="hl-attribute">exist</span> <span class="hl-attribute">(this</span> <span class="hl-attribute">is</span> <span class="hl-attribute">a</span> <span class="hl-attribute">mandatory</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference.</span> <span class="hl-attribute">A</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'0..N'</span> <span class="hl-attribute">indicates</span> <span class="hl-attribute">that</span> <span class="hl-attribute">it</span> 
+    <span class="hl-attribute">is</span> <span class="hl-attribute">acceptable</span> <span class="hl-attribute">for</span> <span class="hl-attribute">there</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">no</span> <span class="hl-attribute">backing</span> <span class="hl-attribute">service</span> <span class="hl-attribute">(an</span> <span class="hl-attribute">optional</span> <span class="hl-attribute">service</span> <span class="hl-attribute">reference).</span>
+                      	<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                      <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+			    <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"greedy-proxying"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:boolean"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"false"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                      	&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Indicates</span> <span class="hl-attribute">whether</span> <span class="hl-attribute">the</span> <span class="hl-attribute">proxies</span> <span class="hl-attribute">created</span> <span class="hl-attribute">for</span> <span class="hl-attribute">the</span> <span class="hl-attribute">imported</span> <span class="hl-attribute">OSGi</span> <span class="hl-attribute">services</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">generated</span> <span class="hl-attribute">using</span> 
+    <span class="hl-attribute">just</span> <span class="hl-attribute">the</span> <span class="hl-attribute">classes</span> <span class="hl-attribute">specified</span> <span class="hl-attribute">(false)</span> <span class="hl-attribute">or</span> <span class="hl-attribute">all</span> <span class="hl-attribute">the</span> <span class="hl-attribute">classes</span> <span class="hl-attribute">exported</span> <span class="hl-attribute">by</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">and</span> <span class="hl-attribute">visible</span> <span class="hl-attribute">to</span>
+    <span class="hl-attribute">the</span> <span class="hl-attribute">importing</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">(true).</span> <span class="hl-attribute">The</span> <span class="hl-attribute">default</span> <span class="hl-attribute">value</span> <span class="hl-attribute">is</span> <span class="hl-attribute">false.</span>
+                      	<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                      <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"member-type"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TmemberType"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"service-object"</span>&gt;
+                    &lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                        &lt;<span class="hl-tag">xsd:documentation</span>&gt;
+                          &lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Indicates</span> <span class="hl-attribute">the</span> <span class="hl-attribute">type</span> <span class="hl-attribute">of</span> <span class="hl-attribute">object</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">placed</span> <span class="hl-attribute">within</span> <span class="hl-attribute">the</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">collection.</span>  
+    <span class="hl-attribute">'service-object'</span> <span class="hl-attribute">indicates</span> <span class="hl-attribute">the</span> <span class="hl-attribute">collection</span> <span class="hl-attribute">contains</span> <span class="hl-attribute">service</span> <span class="hl-attribute">proxies</span> <span class="hl-attribute">for</span> <span class="hl-attribute">imported</span> <span class="hl-attribute">services.</span>
+    <span class="hl-attribute">'service-reference'</span> <span class="hl-attribute">indicates</span> <span class="hl-attribute">the</span> <span class="hl-attribute">collection</span> <span class="hl-attribute">contains</span> <span class="hl-attribute">ServiceReference</span> <span class="hl-attribute">objects</span> <span class="hl-attribute">matching</span> <span class="hl-attribute">the</span> 
+    <span class="hl-attribute">target</span> <span class="hl-attribute">service</span> <span class="hl-attribute">type.</span>
+                          <span class="hl-attribute">]]&gt;</span>
+                        <span class="hl-attribute">&lt;/xsd:documentation&gt;</span>
+                    <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+			<span class="hl-attribute">&lt;/xsd:extension&gt;</span>
+		<span class="hl-attribute">&lt;/xsd:complexContent&gt;</span>
+	<span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+	
+	<span class="hl-attribute">&lt;xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"Tcomparator"</span>&gt;
+		&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+			&lt;<span class="hl-tag">xsd:documentation</span> <span class="hl-attribute">source</span>=<span class="hl-value">"java:java.util.Comparator"</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">define</span> <span class="hl-attribute">an</span> <span class="hl-attribute">inline</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">of</span> <span class="hl-attribute">type</span> <span class="hl-attribute">Comparator</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">sort</span> <span class="hl-attribute">the</span> <span class="hl-attribute">matching</span> <span class="hl-attribute">services.</span>
+			<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+			<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+				<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+					<span class="hl-attribute">&lt;tool:exports</span> <span class="hl-attribute">type</span>=<span class="hl-value">"java.util.Comparator"</span> /&gt;
+  				&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+			&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;
+		&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+		&lt;<span class="hl-tag">xsd:choice</span>&gt;
+		   &lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"natural"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TnaturalOrdering"</span>/&gt;
+     	   &lt;<span class="hl-tag">xsd:sequence</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+        	    &lt;<span class="hl-comment">!-- nested bean declaration --</span>&gt;
+           		&lt;<span class="hl-tag">xsd:any</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"##other"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">processContents</span>=<span class="hl-value">"skip"</span>/&gt;
+        	&lt;<span class="hl-tag">/xsd:sequence</span>&gt;
+        &lt;<span class="hl-tag">/xsd:choice</span>&gt;
+	&lt;<span class="hl-tag">/xsd:complexType</span>&gt;
+	
+	&lt;<span class="hl-tag">xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TnaturalOrdering"</span>&gt;
+		&lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"basis"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TorderingBasis"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"required"</span>/&gt;
+	&lt;<span class="hl-tag">/xsd:complexType</span>&gt;
+	
+	&lt;<span class="hl-tag">xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TorderingBasis"</span>&gt;
+		&lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"service"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"service-reference"</span>/&gt;
+        &lt;<span class="hl-tag">/xsd:restriction</span>&gt;
+	&lt;<span class="hl-tag">/xsd:simpleType</span>&gt;
+	
+    &lt;<span class="hl-tag">xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TmemberType"</span>&gt;
+        &lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"service-object"</span> /&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"service-reference"</span> /&gt;
+        &lt;<span class="hl-tag">/xsd:restriction</span>&gt;
+    &lt;<span class="hl-tag">/xsd:simpleType</span>&gt;	
+	
+	&lt;<span class="hl-tag">xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TcollectionCardinality"</span>&gt;
+        &lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"1..N"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"0..N"</span>/&gt;
+        &lt;<span class="hl-tag">/xsd:restriction</span>&gt;
+   &lt;<span class="hl-tag">/xsd:simpleType</span>&gt;
+	
+    &lt;<span class="hl-comment">!-- service --</span>&gt;
+    
+    &lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"service"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"Tservice"</span>/&gt;
+
+    &lt;<span class="hl-tag">xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TbaseService"</span>&gt;
+        &lt;<span class="hl-tag">xsd:complexContent</span>&gt;
+           &lt;<span class="hl-tag">xsd:extension</span> <span class="hl-attribute">base</span>=<span class="hl-value">"beans:identifiedType"</span>&gt;
+                &lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"interface"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:token"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">the</span> <span class="hl-attribute">interface</span> <span class="hl-attribute">to</span> <span class="hl-attribute">advertise</span> <span class="hl-attribute">for</span> <span class="hl-attribute">this</span> <span class="hl-attribute">service</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">registry.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+						<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+							<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+  								<span class="hl-attribute">&lt;tool:expected-type</span> <span class="hl-attribute">type</span>=<span class="hl-value">"java.lang.Class"</span> /&gt;
+  							&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+						&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;  							
+                	&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+                &lt;<span class="hl-tag">/xsd:attribute</span>&gt;
+                &lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"depends-on"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">ensure</span> <span class="hl-attribute">that</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">is</span> <span class="hl-attribute">not</span> <span class="hl-attribute">exported</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">registry</span> <span class="hl-attribute">before</span> <span class="hl-attribute">the</span> <span class="hl-attribute">named</span> <span class="hl-attribute">bean</span>
+    <span class="hl-attribute">has</span> <span class="hl-attribute">been</span> <span class="hl-attribute">created.</span> 
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"context-class-loader"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TserviceClassLoaderOptions"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"unmanaged"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">how</span> <span class="hl-attribute">the</span> <span class="hl-attribute">context</span> <span class="hl-attribute">class</span> <span class="hl-attribute">loader</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">managed</span> <span class="hl-attribute">when</span> <span class="hl-attribute">an</span> <span class="hl-attribute">operation</span> <span class="hl-attribute">is</span> <span class="hl-attribute">invoked</span> <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> 
+    <span class="hl-attribute">exported</span> <span class="hl-attribute">service.</span> <span class="hl-attribute">The</span> <span class="hl-attribute">default</span> <span class="hl-attribute">value</span> <span class="hl-attribute">is</span> <span class="hl-attribute">'unmanaged'</span> <span class="hl-attribute">which</span> <span class="hl-attribute">means</span> <span class="hl-attribute">that</span> <span class="hl-attribute">no</span> <span class="hl-attribute">management</span> <span class="hl-attribute">of</span> 
+    <span class="hl-attribute">the</span> <span class="hl-attribute">context</span> <span class="hl-attribute">class</span> <span class="hl-attribute">loader</span> <span class="hl-attribute">is</span> <span class="hl-attribute">attempted.</span> <span class="hl-attribute">A</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'service-provider'</span> <span class="hl-attribute">guarantees</span> <span class="hl-attribute">that</span>
+    <span class="hl-attribute">the</span> <span class="hl-attribute">context</span> <span class="hl-attribute">class</span> <span class="hl-attribute">loader</span> <span class="hl-attribute">will</span> <span class="hl-attribute">have</span> <span class="hl-attribute">visibility</span> <span class="hl-attribute">of</span> <span class="hl-attribute">all</span> <span class="hl-attribute">the</span> <span class="hl-attribute">resources</span> <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> <span class="hl-attribute">class</span> <span class="hl-attribute">path</span> <span class="hl-attribute">of</span> 
+    <span class="hl-attribute">bundle</span> <span class="hl-attribute">exporting</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"auto-export"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TautoExportModes"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"disabled"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Enables</span> <span class="hl-attribute">Spring</span> <span class="hl-attribute">to</span> <span class="hl-attribute">automatically</span> <span class="hl-attribute">manage</span> <span class="hl-attribute">the</span> <span class="hl-attribute">set</span> <span class="hl-attribute">of</span> <span class="hl-attribute">service</span> <span class="hl-attribute">interfaces</span> <span class="hl-attribute">advertised</span> <span class="hl-attribute">for</span> <span class="hl-attribute">the</span>
+    <span class="hl-attribute">service.</span> <span class="hl-attribute">By</span> <span class="hl-attribute">default</span> <span class="hl-attribute">this</span> <span class="hl-attribute">facility</span> <span class="hl-attribute">is</span> <span class="hl-attribute">disabled.</span> <span class="hl-attribute">A</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'interfaces'</span> <span class="hl-attribute">advertises</span> <span class="hl-attribute">all</span> 
+    <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Java</span> <span class="hl-attribute">interfaces</span> <span class="hl-attribute">supported</span> <span class="hl-attribute">by</span> <span class="hl-attribute">the</span> <span class="hl-attribute">exported</span> <span class="hl-attribute">service.</span> <span class="hl-attribute">A</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'class-hierarchy'</span> 
+    <span class="hl-attribute">advertises</span> <span class="hl-attribute">all</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Java</span> <span class="hl-attribute">classes</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">hierarchy</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">exported</span> <span class="hl-attribute">service.</span> <span class="hl-attribute">A</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> 
+    <span class="hl-attribute">'all-classes'</span> <span class="hl-attribute">advertises</span> <span class="hl-attribute">all</span> <span class="hl-attribute">Java</span> <span class="hl-attribute">interfaces</span> <span class="hl-attribute">and</span> <span class="hl-attribute">classes.</span> 
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+        	<span class="hl-attribute">&lt;/xsd:extension&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:complexContent&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+    
+    <span class="hl-attribute">&lt;xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"Tservice"</span>&gt;
+    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    		&lt;<span class="hl-tag">xsd:documentation</span> <span class="hl-attribute">source</span>=<span class="hl-value">"java:org.eclipse.gemini.blueprint.service.exporter.support.OsgiServiceFactoryBean"</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Exports</span> <span class="hl-attribute">the</span> <span class="hl-attribute">reference</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">as</span> <span class="hl-attribute">a</span> <span class="hl-attribute">service</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">OSGi</span> <span class="hl-attribute">service</span> <span class="hl-attribute">registry.</span> <span class="hl-attribute">The</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">defined</span> <span class="hl-attribute">by</span> <span class="hl-attribute">this</span> <span class="hl-attribute">element</span> <span class="hl-attribute">is</span> <span class="hl-attribute">of</span> 
+    <span class="hl-attribute">type</span> <span class="hl-attribute">org.osgi.framework.ServiceRegistration.</span>
+    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+			<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+				<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+					<span class="hl-attribute">&lt;tool:exports</span> <span class="hl-attribute">type</span>=<span class="hl-value">"org.osgi.framework.ServiceRegistration"</span>/&gt;
+				&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+			&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;			
+    	&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+        &lt;<span class="hl-tag">xsd:complexContent</span>&gt;
+            &lt;<span class="hl-tag">xsd:extension</span> <span class="hl-attribute">base</span>=<span class="hl-value">"TbaseService"</span>&gt;
+            	&lt;<span class="hl-tag">xsd:sequence</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+                    &lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"interfaces"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"beans:listOrSetType"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+                    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">The</span> <span class="hl-attribute">set</span> <span class="hl-attribute">of</span> <span class="hl-attribute">service</span> <span class="hl-attribute">interfaces</span> <span class="hl-attribute">to</span> <span class="hl-attribute">advertise</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">registry.</span>
+                    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                    <span class="hl-attribute">&lt;/xsd:element&gt;</span>
+                    <span class="hl-attribute">&lt;xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"registration-listener"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TserviceRegistrationListener"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"unbounded"</span>&gt;
+                    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">listener</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">notified</span> <span class="hl-attribute">when</span> <span class="hl-attribute">this</span> <span class="hl-attribute">service</span> <span class="hl-attribute">is</span> <span class="hl-attribute">registered</span> <span class="hl-attribute">or</span> <span class="hl-attribute">unregistered</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span>
+    <span class="hl-attribute">OSGi</span> <span class="hl-attribute">service</span> <span class="hl-attribute">registry.</span>
+                    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:element&gt;</span>
+                    <span class="hl-attribute">&lt;xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"service-properties"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TserviceProperties"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+                       	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">properties.</span>
+                    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                    <span class="hl-attribute">&lt;/xsd:element&gt;</span>
+                    <span class="hl-attribute">&lt;!--</span> <span class="hl-attribute">nested</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">declaration</span> <span class="hl-attribute">--&gt;</span>
+                	<span class="hl-attribute">&lt;xsd:any</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"##other"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">processContents</span>=<span class="hl-value">"skip"</span>/&gt;
+                &lt;<span class="hl-tag">/xsd:sequence</span>&gt;
+                &lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"ref"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Refers</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">named</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">exported</span> <span class="hl-attribute">as</span> <span class="hl-attribute">a</span> <span class="hl-attribute">service</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">registry.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"ranking"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:int"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"0"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Specifies</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">ranking</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">used</span> <span class="hl-attribute">when</span> <span class="hl-attribute">advertising</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"cache-target"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:boolean"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"false"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Specifies</span> <span class="hl-attribute">the</span> <span class="hl-attribute">caching</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">exported</span> <span class="hl-attribute">target</span> <span class="hl-attribute">object.</span> <span class="hl-attribute">When</span> <span class="hl-attribute">enabled,</span> <span class="hl-attribute">the</span> <span class="hl-attribute">exporter</span> <span class="hl-attribute">will</span> <span class="hl-attribute">ignore</span> <span class="hl-attribute">the</span> <span class="hl-attribute">scope</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> 
+    <span class="hl-attribute">target</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">and</span>	<span class="hl-attribute">use</span> <span class="hl-attribute">only</span> <span class="hl-attribute">the</span> <span class="hl-attribute">first</span> <span class="hl-attribute">resolved</span> <span class="hl-attribute">instance</span> <span class="hl-attribute">for</span> <span class="hl-attribute">registration.</span> <span class="hl-attribute">When</span> <span class="hl-attribute">disabled</span> <span class="hl-attribute">(default),</span> <span class="hl-attribute">the</span> <span class="hl-attribute">scope</span> <span class="hl-attribute">of</span> 
+    <span class="hl-attribute">the</span> <span class="hl-attribute">target</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">is</span> <span class="hl-attribute">considered</span> <span class="hl-attribute">and</span> <span class="hl-attribute">each</span> <span class="hl-attribute">service</span> <span class="hl-attribute">request,</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">directed</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">container.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+            <span class="hl-attribute">&lt;/xsd:extension&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:complexContent&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+
+    <span class="hl-attribute">&lt;xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TserviceProperties"</span>&gt;
+    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Services</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">used</span> <span class="hl-attribute">by</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">exporter.</span>
+    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+			<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+				<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+					<span class="hl-attribute">&lt;tool:exports</span> <span class="hl-attribute">type</span>=<span class="hl-value">"java.util.Map"</span>/&gt;
+				&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+			&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;
+    	&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+    	
+    	&lt;<span class="hl-tag">xsd:complexContent</span>&gt;
+            &lt;<span class="hl-tag">xsd:extension</span> <span class="hl-attribute">base</span>=<span class="hl-value">"beans:mapType"</span>&gt;
+            	&lt;<span class="hl-comment">!-- shortcut for bean references --</span>&gt;
+        		&lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"ref"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+        			&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+        				&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Refers</span> <span class="hl-attribute">by</span> <span class="hl-attribute">name</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">receive</span> <span class="hl-attribute">register</span> <span class="hl-attribute">and</span> <span class="hl-attribute">unregister</span> <span class="hl-attribute">events.</span>
+    		    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        			<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        		<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+    		<span class="hl-attribute">&lt;/xsd:extension&gt;</span>
+    	<span class="hl-attribute">&lt;/xsd:complexContent&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+
+    <span class="hl-attribute">&lt;xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TserviceRegistrationListener"</span>&gt;
+    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">listener</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">notified</span> <span class="hl-attribute">when</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">is</span> <span class="hl-attribute">registered</span> <span class="hl-attribute">or</span> <span class="hl-attribute">unregistered</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">OSGi</span> <span class="hl-attribute">Service</span> <span class="hl-attribute">Registry.</span> 
+    <span class="hl-attribute">Use</span> <span class="hl-attribute">either</span> <span class="hl-attribute">the</span> <span class="hl-attribute">'ref'</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">or</span> <span class="hl-attribute">a</span> <span class="hl-attribute">nested</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">declaration</span> <span class="hl-attribute">for</span> <span class="hl-attribute">the</span> <span class="hl-attribute">listener</span> <span class="hl-attribute">bean.</span>
+    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;xsd:sequence</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+            &lt;<span class="hl-comment">!-- nested bean declaration --</span>&gt;
+            &lt;<span class="hl-tag">xsd:any</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"##other"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">processContents</span>=<span class="hl-value">"skip"</span>/&gt;
+        &lt;<span class="hl-tag">/xsd:sequence</span>&gt;
+
+        &lt;<span class="hl-comment">!-- shortcut for bean references --</span>&gt;
+        &lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"ref"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+        	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+        		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Refers</span> <span class="hl-attribute">by</span> <span class="hl-attribute">name</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">receive</span> <span class="hl-attribute">register</span> <span class="hl-attribute">and</span> <span class="hl-attribute">unregister</span> <span class="hl-attribute">events.</span>
+        		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+        <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"registration-method"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:token"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+        	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+        		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">The</span> <span class="hl-attribute">name</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">method</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">invoked</span> <span class="hl-attribute">when</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">is</span> <span class="hl-attribute">registered.</span>
+        		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+        <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"unregistration-method"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:token"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+        	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+        		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">The</span> <span class="hl-attribute">name</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">method</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">invoked</span> <span class="hl-attribute">when</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">is</span> <span class="hl-attribute">unregistered.</span>
+        		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+        	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+
+    <span class="hl-attribute">&lt;xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TserviceClassLoaderOptions"</span>&gt;
+        &lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"service-provider"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"unmanaged"</span>/&gt;
+        &lt;<span class="hl-tag">/xsd:restriction</span>&gt;
+    &lt;<span class="hl-tag">/xsd:simpleType</span>&gt;
+
+    &lt;<span class="hl-tag">xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TautoExportModes"</span>&gt;
+        &lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"disabled"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"interfaces"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"class-hierarchy"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"all-classes"</span>/&gt;
+        &lt;<span class="hl-tag">/xsd:restriction</span>&gt;
+    &lt;<span class="hl-tag">/xsd:simpleType</span>&gt;
+
+    &lt;<span class="hl-comment">!-- bundle --</span>&gt;
+
+    &lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"bundle"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"Tbundle"</span>&gt;
+    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    		&lt;<span class="hl-tag">xsd:documentation</span> <span class="hl-attribute">source</span>=<span class="hl-value">"java:org.eclipse.gemini.blueprint.bundle.BundleFactoryBean"</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">representing</span> <span class="hl-attribute">a</span> <span class="hl-attribute">Bundle</span> <span class="hl-attribute">object.</span> <span class="hl-attribute">May</span> <span class="hl-attribute">be</span> <span class="hl-attribute">used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">drive</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">lifecycle</span> <span class="hl-attribute">transitions.</span>
+    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+			<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+				<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+					<span class="hl-attribute">&lt;tool:exports</span> <span class="hl-attribute">type</span>=<span class="hl-value">"org.osgi.framework.Bundle"</span>/&gt;
+				&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+			&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;    		
+    	&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+    &lt;<span class="hl-tag">/xsd:element</span>&gt;
+
+    &lt;<span class="hl-tag">xsd:complexType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"Tbundle"</span>&gt;
+        &lt;<span class="hl-tag">xsd:complexContent</span>&gt;
+            &lt;<span class="hl-tag">xsd:extension</span> <span class="hl-attribute">base</span>=<span class="hl-value">"beans:identifiedType"</span>&gt;
+              	&lt;<span class="hl-comment">!-- optional nested bean declaration --</span>&gt;
+                &lt;<span class="hl-tag">xsd:sequence</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+		    		&lt;<span class="hl-tag">xsd:any</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"##other"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">processContents</span>=<span class="hl-value">"lax"</span>&gt;
+            		   	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">OSGi</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">to</span> <span class="hl-attribute">work</span> <span class="hl-attribute">with.</span>
+                    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+							<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+								<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+  									<span class="hl-attribute">&lt;tool:expected-type</span> <span class="hl-attribute">type</span>=<span class="hl-value">"org.osgi.framework.Bundle"</span> /&gt;
+  								&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+							&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;  							
+                    	&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+            		&lt;<span class="hl-tag">/xsd:any</span>&gt;
+        		&lt;<span class="hl-tag">/xsd:sequence</span>&gt;
+        		
+                &lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"symbolic-name"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">The</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">symbolic</span> <span class="hl-attribute">name</span> <span class="hl-attribute">of</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">object.</span> <span class="hl-attribute">Normally</span> <span class="hl-attribute">used</span> <span class="hl-attribute">when</span> <span class="hl-attribute">interacting</span> <span class="hl-attribute">with</span> <span class="hl-attribute">an</span> <span class="hl-attribute">already</span>
+    <span class="hl-attribute">installed</span> <span class="hl-attribute">bundle.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"depends-on"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Indicates</span> <span class="hl-attribute">that</span> <span class="hl-attribute">this</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">object</span> <span class="hl-attribute">should</span> <span class="hl-attribute">not</span> <span class="hl-attribute">be</span> <span class="hl-attribute">created</span> <span class="hl-attribute">until</span> <span class="hl-attribute">the</span> <span class="hl-attribute">named</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">has</span> <span class="hl-attribute">been</span> <span class="hl-attribute">created.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+               
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"location"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Location</span> <span class="hl-attribute">used</span> <span class="hl-attribute">to</span> <span class="hl-attribute">install,</span> <span class="hl-attribute">update</span> <span class="hl-attribute">or/and</span> <span class="hl-attribute">identify</span> <span class="hl-attribute">a</span> <span class="hl-attribute">bundle.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"action"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TbundleAction"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Lifecyle</span> <span class="hl-attribute">action</span> <span class="hl-attribute">to</span> <span class="hl-attribute">drive</span> <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle.</span> <span class="hl-attribute">'start'</span> <span class="hl-attribute">starts</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle,</span> <span class="hl-attribute">installing</span> <span class="hl-attribute">if</span> <span class="hl-attribute">necessary.</span>
+    <span class="hl-attribute">'stop'</span> <span class="hl-attribute">stops</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">if</span> <span class="hl-attribute">it</span> <span class="hl-attribute">is</span> <span class="hl-attribute">currently</span> <span class="hl-attribute">ACTIVE.</span> <span class="hl-attribute">'install'</span> <span class="hl-attribute">installs</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">if</span> <span class="hl-attribute">it</span> <span class="hl-attribute">is</span> 
+    <span class="hl-attribute">currently</span> <span class="hl-attribute">uninstalled.</span> <span class="hl-attribute">'uninstall'</span> <span class="hl-attribute">stops</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">if</span> <span class="hl-attribute">needed,</span> <span class="hl-attribute">and</span> <span class="hl-attribute">then</span> <span class="hl-attribute">uninstalls</span> <span class="hl-attribute">it.</span>
+    <span class="hl-attribute">'update'</span> <span class="hl-attribute">installs</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">if</span> <span class="hl-attribute">needed,</span> <span class="hl-attribute">and</span> <span class="hl-attribute">then</span> <span class="hl-attribute">invokes</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Bundle.update()</span> <span class="hl-attribute">operation.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"destroy-action"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"TbundleAction"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Lifecyle</span> <span class="hl-attribute">action</span> <span class="hl-attribute">to</span> <span class="hl-attribute">drive</span> <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle.</span> <span class="hl-attribute">'start'</span> <span class="hl-attribute">starts</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle,</span> <span class="hl-attribute">installing</span> <span class="hl-attribute">if</span> <span class="hl-attribute">necessary.</span>
+    <span class="hl-attribute">'stop'</span> <span class="hl-attribute">stops</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">if</span> <span class="hl-attribute">it</span> <span class="hl-attribute">is</span> <span class="hl-attribute">currently</span> <span class="hl-attribute">ACTIVE.</span> <span class="hl-attribute">'install'</span> <span class="hl-attribute">installs</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">if</span> <span class="hl-attribute">it</span> <span class="hl-attribute">is</span> 
+    <span class="hl-attribute">currently</span> <span class="hl-attribute">uninstalled.</span> <span class="hl-attribute">'uninstall'</span> <span class="hl-attribute">stops</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">if</span> <span class="hl-attribute">needed,</span> <span class="hl-attribute">and</span> <span class="hl-attribute">then</span> <span class="hl-attribute">uninstalls</span> <span class="hl-attribute">it.</span>
+    <span class="hl-attribute">'update'</span> <span class="hl-attribute">installs</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle</span> <span class="hl-attribute">if</span> <span class="hl-attribute">needed,</span> <span class="hl-attribute">and</span> <span class="hl-attribute">then</span> <span class="hl-attribute">invokes</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Bundle.update()</span> <span class="hl-attribute">operation.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+                <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"start-level"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:int"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"0"</span>&gt;
+                	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+                		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Start</span> <span class="hl-attribute">level</span> <span class="hl-attribute">to</span> <span class="hl-attribute">set</span> <span class="hl-attribute">for</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bundle.</span>
+                		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+                	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+                <span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+            <span class="hl-attribute">&lt;/xsd:extension&gt;</span>
+        <span class="hl-attribute">&lt;/xsd:complexContent&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+
+    <span class="hl-attribute">&lt;xsd:simpleType</span> <span class="hl-attribute">name</span>=<span class="hl-value">"TbundleAction"</span>&gt;
+        &lt;<span class="hl-tag">xsd:restriction</span> <span class="hl-attribute">base</span>=<span class="hl-value">"xsd:NMTOKEN"</span>&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"start"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"stop"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"install"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"uninstall"</span>/&gt;
+            &lt;<span class="hl-tag">xsd:enumeration</span> <span class="hl-attribute">value</span>=<span class="hl-value">"update"</span>/&gt;
+        &lt;<span class="hl-tag">/xsd:restriction</span>&gt;
+    &lt;<span class="hl-tag">/xsd:simpleType</span>&gt;
+
+&lt;<span class="hl-tag">/xsd:schema</span>&gt;
+    </pre><p>Gemini Blueprint Compendium Schema</p><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8" standalone="no"?</span>&gt;
+
+&lt;<span class="hl-tag">xsd:schema</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint-compendium"</span>
+            <span class="hl-attribute">xmlns:xsd</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema"</span>
+            <span class="hl-attribute">xmlns:beans</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>
+            <span class="hl-attribute">xmlns:osgi</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint"</span>
+            <span class="hl-attribute">xmlns:tool</span>=<span class="hl-value">"http://www.springframework.org/schema/tool"</span>
+            <span class="hl-attribute">targetNamespace</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint-compendium"</span>
+            <span class="hl-attribute">elementFormDefault</span>=<span class="hl-value">"qualified"</span>
+            <span class="hl-attribute">attributeFormDefault</span>=<span class="hl-value">"unqualified"</span>
+            <span class="hl-attribute">version</span>=<span class="hl-value">"1.0.0"</span>&gt;
+
+    &lt;<span class="hl-tag">xsd:import</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"http://www.w3.org/XML/1998/namespace"</span>/&gt;
+    &lt;<span class="hl-tag">xsd:import</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>/&gt;
+    &lt;<span class="hl-tag">xsd:import</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"http://www.springframework.org/schema/tool"</span>/&gt;
+    &lt;<span class="hl-tag">xsd:import</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint"</span> 
+    	<span class="hl-attribute">schemaLocation</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint/gemini-blueprint.xsd"</span>/&gt; 
+    
+
+    &lt;<span class="hl-tag">xsd:annotation</span>&gt;
+        &lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Namespace</span> <span class="hl-attribute">support</span> <span class="hl-attribute">for</span> <span class="hl-attribute">the</span> <span class="hl-attribute">compendium</span> <span class="hl-attribute">services</span> <span class="hl-attribute">provided</span> <span class="hl-attribute">by</span> <span class="hl-attribute">Eclipse</span> <span class="hl-attribute">Gemini</span> <span class="hl-attribute">Blueprint.</span>
+        <span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+
+	<span class="hl-attribute">&lt;!--</span> <span class="hl-attribute">internal</span> <span class="hl-attribute">reusable</span> <span class="hl-attribute">type</span> <span class="hl-attribute">--&gt;</span>
+	<span class="hl-attribute">&lt;xsd:attributeGroup</span> <span class="hl-attribute">name</span>=<span class="hl-value">"updateAttributes"</span>&gt;
+		&lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"autowire-on-update"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:boolean"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"false"</span>&gt;
+			&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+				&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Whether</span> <span class="hl-attribute">or</span> <span class="hl-attribute">not</span> <span class="hl-attribute">the</span> <span class="hl-attribute">container</span> <span class="hl-attribute">should</span> <span class="hl-attribute">autowire</span> <span class="hl-attribute">the</span> <span class="hl-attribute">target</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">everytime</span> <span class="hl-attribute">an</span> <span class="hl-attribute">update</span> <span class="hl-attribute">occurs.</span>
+	<span class="hl-attribute">When</span> <span class="hl-attribute">'true'</span> <span class="hl-attribute">is</span> <span class="hl-attribute">specified,</span> <span class="hl-attribute">the</span> <span class="hl-attribute">container</span> <span class="hl-attribute">will</span> <span class="hl-attribute">perform</span> <span class="hl-attribute">autowire</span> <span class="hl-attribute">(by</span> <span class="hl-attribute">name)</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">instance</span> <span class="hl-attribute">with</span> <span class="hl-attribute">the</span>
+	<span class="hl-attribute">newly</span> <span class="hl-attribute">set</span> <span class="hl-attribute">properties.</span> <span class="hl-attribute">In</span> <span class="hl-attribute">case</span> <span class="hl-attribute">'update-method'</span> <span class="hl-attribute">attribute</span> <span class="hl-attribute">is</span> <span class="hl-attribute">used</span> <span class="hl-attribute">as</span> <span class="hl-attribute">well,</span> <span class="hl-attribute">the</span> <span class="hl-attribute">autowiring</span> <span class="hl-attribute">process</span> <span class="hl-attribute">will</span>
+	<span class="hl-attribute">take</span> <span class="hl-attribute">precedence.</span>
+				<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+			<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+		<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+		<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"update-method"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"optional"</span>&gt;
+			&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+				&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">The</span> <span class="hl-attribute">update-method</span> <span class="hl-attribute">to</span> <span class="hl-attribute">invoke</span> <span class="hl-attribute">whenever</span> <span class="hl-attribute">an</span> <span class="hl-attribute">update</span> <span class="hl-attribute">occurs</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">configuration</span> <span class="hl-attribute">data.</span> <span class="hl-attribute">Allows</span> <span class="hl-attribute">the</span> <span class="hl-attribute">target</span>
+	<span class="hl-attribute">bean</span> <span class="hl-attribute">to</span> <span class="hl-attribute">process</span> <span class="hl-attribute">the</span> <span class="hl-attribute">update</span> <span class="hl-attribute">information</span> <span class="hl-attribute">itself.</span> <span class="hl-attribute">In</span> <span class="hl-attribute">case</span> <span class="hl-attribute">'autowire-on-update'</span> <span class="hl-attribute">is</span> <span class="hl-attribute">also</span> <span class="hl-attribute">used,</span> <span class="hl-attribute">the</span> <span class="hl-attribute">'update-method'</span>
+	<span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">invoked</span> <span class="hl-attribute">after</span> <span class="hl-attribute">the</span> <span class="hl-attribute">autowiring</span> <span class="hl-attribute">takes</span> <span class="hl-attribute">place.</span>
+				<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+			<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+		<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+	<span class="hl-attribute">&lt;/xsd:attributeGroup&gt;</span>
+    
+    
+    <span class="hl-attribute">&lt;xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"managed-properties"</span>&gt;
+    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">based</span> <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> <span class="hl-attribute">given</span> <span class="hl-attribute">class</span> <span class="hl-attribute">name</span> <span class="hl-attribute">and</span> <span class="hl-attribute">configuration,</span> <span class="hl-attribute">with</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">autowired-by-name</span> 
+    <span class="hl-attribute">based</span> <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> <span class="hl-attribute">configuration</span> <span class="hl-attribute">stored</span> <span class="hl-attribute">under</span> <span class="hl-attribute">the</span> <span class="hl-attribute">given</span> <span class="hl-attribute">persistent</span> <span class="hl-attribute">id.</span>
+    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+    	<span class="hl-attribute">&lt;xsd:complexType&gt;</span>
+		    <span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"persistent-id"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"required"</span>&gt;
+				&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+					&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">The</span> <span class="hl-attribute">persistent-id</span> <span class="hl-attribute">under</span> <span class="hl-attribute">which</span> <span class="hl-attribute">the</span> <span class="hl-attribute">configuration</span> <span class="hl-attribute">for</span> <span class="hl-attribute">this</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">is</span> <span class="hl-attribute">stored</span> <span class="hl-attribute">in</span> 
+	<span class="hl-attribute">the</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin</span> <span class="hl-attribute">service.</span>
+					<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+				<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+			<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+	       	<span class="hl-attribute">&lt;xsd:attributeGroup</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"updateAttributes"</span>/&gt;
+		&lt;<span class="hl-tag">/xsd:complexType</span>&gt;
+	&lt;<span class="hl-tag">/xsd:element</span>&gt;
+	
+    &lt;<span class="hl-comment">!--  managed-service-factory --</span>&gt;
+
+    &lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"managed-service-factory"</span>&gt;
+       	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">collection</span> <span class="hl-attribute">of</span> <span class="hl-attribute">beans</span> <span class="hl-attribute">based</span> <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> <span class="hl-attribute">given</span> <span class="hl-attribute">class</span> <span class="hl-attribute">name,</span> <span class="hl-attribute">with</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">autowired-by-name</span> <span class="hl-attribute">based</span>
+    <span class="hl-attribute">on</span> <span class="hl-attribute">the</span> <span class="hl-attribute">configuration</span> <span class="hl-attribute">sets</span> <span class="hl-attribute">stored</span> <span class="hl-attribute">under</span> <span class="hl-attribute">the</span> <span class="hl-attribute">given</span> <span class="hl-attribute">factory</span> <span class="hl-attribute">persistent</span> <span class="hl-attribute">id.</span>
+    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+        <span class="hl-attribute">&lt;xsd:complexType&gt;</span>
+        	<span class="hl-attribute">&lt;xsd:complexContent&gt;</span>
+	            <span class="hl-attribute">&lt;xsd:extension</span> <span class="hl-attribute">base</span>=<span class="hl-value">"osgi:TbaseService"</span>&gt;
+	            	&lt;<span class="hl-tag">xsd:sequence</span>&gt;
+	                    &lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"interfaces"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"beans:listOrSetType"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>&gt;
+	                    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+	                    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">The</span> <span class="hl-attribute">set</span> <span class="hl-attribute">of</span> <span class="hl-attribute">service</span> <span class="hl-attribute">interfaces</span> <span class="hl-attribute">to</span> <span class="hl-attribute">advertise</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">registry.</span>
+	                    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+	                    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+	                    <span class="hl-attribute">&lt;/xsd:element&gt;</span>
+	                    <span class="hl-attribute">&lt;xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"registration-listener"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"osgi:TserviceRegistrationListener"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"unbounded"</span>&gt;
+	                    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+	                    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Defines</span> <span class="hl-attribute">a</span> <span class="hl-attribute">listener</span> <span class="hl-attribute">that</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">notified</span> <span class="hl-attribute">when</span> <span class="hl-attribute">this</span> <span class="hl-attribute">service</span> <span class="hl-attribute">is</span> <span class="hl-attribute">registered</span> <span class="hl-attribute">or</span> <span class="hl-attribute">unregistered</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span>
+    <span class="hl-attribute">OSGi</span> <span class="hl-attribute">service</span> <span class="hl-attribute">registry.</span>
+	                    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+	                    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+	                	<span class="hl-attribute">&lt;/xsd:element&gt;</span>
+	                    <span class="hl-attribute">&lt;xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"service-properties"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"osgi:TserviceProperties"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"0"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span>/&gt;
+		            	&lt;<span class="hl-comment">!-- the bean definition template --</span>&gt;
+	                    &lt;<span class="hl-tag">xsd:any</span> <span class="hl-attribute">namespace</span>=<span class="hl-value">"##other"</span> <span class="hl-attribute">minOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">maxOccurs</span>=<span class="hl-value">"1"</span> <span class="hl-attribute">processContents</span>=<span class="hl-value">"skip"</span>&gt;
+	   				       	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+	                    		&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Defines</span> <span class="hl-attribute">the</span> <span class="hl-attribute">service</span> <span class="hl-attribute">definition</span> <span class="hl-attribute">template.</span>
+	                    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+	                    	<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+	                    <span class="hl-attribute">&lt;/xsd:any&gt;</span>
+		           	<span class="hl-attribute">&lt;/xsd:sequence&gt;</span>
+		           	<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"factory-pid"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"required"</span>&gt;
+						&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+							&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">The</span> <span class="hl-attribute">persistent-id</span> <span class="hl-attribute">under</span> <span class="hl-attribute">which</span> <span class="hl-attribute">the</span> <span class="hl-attribute">configuration</span> <span class="hl-attribute">for</span> <span class="hl-attribute">this</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">is</span> <span class="hl-attribute">stored</span> <span class="hl-attribute">in</span> 
+	<span class="hl-attribute">the</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin</span> <span class="hl-attribute">service.</span>
+							<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+						<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+					<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+					<span class="hl-attribute">&lt;xsd:attributeGroup</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"updateAttributes"</span>/&gt;
+				&lt;<span class="hl-tag">/xsd:extension</span>&gt;
+			&lt;<span class="hl-tag">/xsd:complexContent</span>&gt;
+		&lt;<span class="hl-tag">/xsd:complexType</span>&gt;
+	&lt;<span class="hl-tag">/xsd:element</span>&gt;
+	
+    
+    &lt;<span class="hl-comment">!-- cm-properties --</span>&gt;
+    &lt;<span class="hl-tag">xsd:element</span> <span class="hl-attribute">name</span>=<span class="hl-value">"cm-properties"</span>&gt;
+    	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+    		&lt;<span class="hl-tag">xsd:documentation</span> <span class="hl-attribute">source</span>=<span class="hl-value">"java:org.eclipse.gemini.blueprint.compendium.cm.ConfigAdminPropertiesFactoryBean"</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+    <span class="hl-attribute">Exposes</span> <span class="hl-attribute">the</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">found</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin</span> <span class="hl-attribute">service</span> <span class="hl-attribute">under</span> <span class="hl-attribute">the</span> <span class="hl-attribute">given</span> <span class="hl-attribute">persistent</span> <span class="hl-attribute">id.</span>
+    		<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+			<span class="hl-attribute">&lt;xsd:appinfo&gt;</span>
+				<span class="hl-attribute">&lt;tool:annotation&gt;</span>
+					<span class="hl-attribute">&lt;tool:exports</span> <span class="hl-attribute">type</span>=<span class="hl-value">"java.util.Properties"</span>/&gt;
+				&lt;<span class="hl-tag">/tool:annotation</span>&gt;
+			&lt;<span class="hl-tag">/xsd:appinfo</span>&gt;
+    	&lt;<span class="hl-tag">/xsd:annotation</span>&gt;
+    	&lt;<span class="hl-tag">xsd:complexType</span>&gt;
+	    	&lt;<span class="hl-tag">xsd:complexContent</span>&gt;
+	    		&lt;<span class="hl-tag">xsd:extension</span> <span class="hl-attribute">base</span>=<span class="hl-value">"beans:propsType"</span>&gt;
+	    			&lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"id"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:ID"</span>/&gt;
+	    		    &lt;<span class="hl-tag">xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"persistent-id"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:string"</span> <span class="hl-attribute">use</span>=<span class="hl-value">"required"</span>&gt;
+			        	&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+	        				&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">The</span> <span class="hl-attribute">persistent</span> <span class="hl-attribute">id</span> <span class="hl-attribute">under</span> <span class="hl-attribute">which</span> <span class="hl-attribute">the</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">reside.</span>
+	        				<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+	        			<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+	        		<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+					<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"local-override"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:boolean"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"false"</span>&gt;
+						&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+							&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Specifies</span> <span class="hl-attribute">whether</span> <span class="hl-attribute">local</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">override</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">from</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin</span> <span class="hl-attribute">service.</span>
+	<span class="hl-attribute">Default</span> <span class="hl-attribute">is</span> <span class="hl-attribute">"false":</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">from</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin</span> <span class="hl-attribute">service</span> <span class="hl-attribute">override</span> <span class="hl-attribute">local</span> <span class="hl-attribute">defaults.</span>
+	<span class="hl-attribute">If</span> <span class="hl-attribute">set</span> <span class="hl-attribute">to</span> <span class="hl-attribute">"true",</span> <span class="hl-attribute">local</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">will</span> <span class="hl-attribute">override</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">from</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin</span> <span class="hl-attribute">service.</span>
+							<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+						<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+					<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+					<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"dynamic"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:boolean"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"false"</span>&gt;
+						&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+							&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Specifies</span> <span class="hl-attribute">whether</span> <span class="hl-attribute">changes</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin</span> <span class="hl-attribute">service</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">reflected</span> <span class="hl-attribute">by</span> <span class="hl-attribute">the</span> <span class="hl-attribute">properties.</span>
+	<span class="hl-attribute">Default</span> <span class="hl-attribute">is</span> <span class="hl-attribute">"false":</span> <span class="hl-attribute">once</span> <span class="hl-attribute">resolved</span> <span class="hl-attribute">from</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin,</span> <span class="hl-attribute">the</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">will</span> <span class="hl-attribute">not</span> <span class="hl-attribute">change.</span>
+	<span class="hl-attribute">If</span> <span class="hl-attribute">set</span> <span class="hl-attribute">to</span> <span class="hl-attribute">"true",</span> <span class="hl-attribute">the</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">object</span> <span class="hl-attribute">content</span> <span class="hl-attribute">will</span> <span class="hl-attribute">update</span> <span class="hl-attribute">accordingly</span> <span class="hl-attribute">(after</span> <span class="hl-attribute">initialization)</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">changes</span> <span class="hl-attribute">in</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin.</span>
+							<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+						<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+					<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+					<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"init-lazy"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:boolean"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"true"</span>&gt;
+						&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+							&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Specifies</span> <span class="hl-attribute">whether</span> <span class="hl-attribute">the</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">reflecting</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin</span> <span class="hl-attribute">service</span> <span class="hl-attribute">entry</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">initialized</span> <span class="hl-attribute">lazy</span> <span class="hl-attribute">or</span> <span class="hl-attribute">not.</span>
+	<span class="hl-attribute">Default</span> <span class="hl-attribute">is</span> <span class="hl-attribute">"true":</span> <span class="hl-attribute">meaning</span> <span class="hl-attribute">the</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">initialized</span> <span class="hl-attribute">just</span> <span class="hl-attribute">before</span> <span class="hl-attribute">being</span> <span class="hl-attribute">requested</span> <span class="hl-attribute">(from</span> <span class="hl-attribute">the</span> <span class="hl-attribute">factory)</span> <span class="hl-attribute">for</span> <span class="hl-attribute">the</span> <span class="hl-attribute">first</span> <span class="hl-attribute">time.</span> <span class="hl-attribute">This</span> <span class="hl-attribute">is</span>
+	<span class="hl-attribute">the</span> <span class="hl-attribute">common</span> <span class="hl-attribute">case</span> <span class="hl-attribute">as</span> <span class="hl-attribute">it</span> <span class="hl-attribute">allows</span> <span class="hl-attribute">the</span> <span class="hl-attribute">most</span> <span class="hl-attribute">recent</span> <span class="hl-attribute">entry</span> <span class="hl-attribute">to</span> <span class="hl-attribute">be</span> <span class="hl-attribute">used.</span>
+	<span class="hl-attribute">If</span> <span class="hl-attribute">set</span> <span class="hl-attribute">to</span> <span class="hl-attribute">"false",</span> <span class="hl-attribute">the</span> <span class="hl-attribute">properties</span> <span class="hl-attribute">object</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">initialized</span> <span class="hl-attribute">at</span> <span class="hl-attribute">startup,</span> <span class="hl-attribute">along</span> <span class="hl-attribute">with</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">factory.</span>
+							<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+						<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+					<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+					<span class="hl-attribute">&lt;xsd:attribute</span> <span class="hl-attribute">name</span>=<span class="hl-value">"init-timeout"</span> <span class="hl-attribute">type</span>=<span class="hl-value">"xsd:nonNegativeInteger"</span> <span class="hl-attribute">default</span>=<span class="hl-value">"0"</span>&gt;
+						&lt;<span class="hl-tag">xsd:annotation</span>&gt;
+							&lt;<span class="hl-tag">xsd:documentation</span>&gt;&lt;<span class="hl-tag">![CDATA[</span>
+	<span class="hl-attribute">Specifies</span> <span class="hl-attribute">the</span> <span class="hl-attribute">amount</span> <span class="hl-attribute">of</span> <span class="hl-attribute">time</span> <span class="hl-attribute">(in</span> <span class="hl-attribute">milliseconds)</span> <span class="hl-attribute">the</span> <span class="hl-attribute">bean</span> <span class="hl-attribute">factory</span> <span class="hl-attribute">will</span> <span class="hl-attribute">wait</span> <span class="hl-attribute">for</span> <span class="hl-attribute">the</span> <span class="hl-attribute">Configuration</span> <span class="hl-attribute">Admin</span> <span class="hl-attribute">entry</span> <span class="hl-attribute">to</span>
+	<span class="hl-attribute">be</span> <span class="hl-attribute">initialized</span> <span class="hl-attribute">(return</span> <span class="hl-attribute">a</span> <span class="hl-attribute">non-null</span> <span class="hl-attribute">value).</span> <span class="hl-attribute">If</span> <span class="hl-attribute">the</span> <span class="hl-attribute">entry</span> <span class="hl-attribute">is</span> <span class="hl-attribute">not</span> <span class="hl-attribute">null</span> <span class="hl-attribute">at</span> <span class="hl-attribute">startup,</span> <span class="hl-attribute">no</span> <span class="hl-attribute">waiting</span> <span class="hl-attribute">will</span> <span class="hl-attribute">be</span> <span class="hl-attribute">performed.</span>
+	<span class="hl-attribute">Similar</span> <span class="hl-attribute">to</span> <span class="hl-attribute">the</span> <span class="hl-attribute">other</span> <span class="hl-attribute">timeout</span> <span class="hl-attribute">options,</span> <span class="hl-attribute">a</span> <span class="hl-attribute">value</span> <span class="hl-attribute">of</span> <span class="hl-attribute">'0'</span> <span class="hl-attribute">means</span> <span class="hl-attribute">no</span> <span class="hl-attribute">waiting.</span> <span class="hl-attribute">By</span> <span class="hl-attribute">default,</span> <span class="hl-attribute">no</span> <span class="hl-attribute">waiting</span> <span class="hl-attribute">(0)</span> <span class="hl-attribute">is</span> <span class="hl-attribute">performed.</span>
+							<span class="hl-attribute">]]&gt;&lt;/xsd:documentation&gt;</span>
+						<span class="hl-attribute">&lt;/xsd:annotation&gt;</span>
+					<span class="hl-attribute">&lt;/xsd:attribute&gt;</span>
+	    		<span class="hl-attribute">&lt;/xsd:extension&gt;</span>
+	    	<span class="hl-attribute">&lt;/xsd:complexContent&gt;</span>
+    	<span class="hl-attribute">&lt;/xsd:complexType&gt;</span>
+    <span class="hl-attribute">&lt;/xsd:element&gt;</span>
+<span class="hl-attribute">&lt;/xsd:schema&gt;</span>
+    </pre></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="appendix-osgi-repo.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="appendix-ack.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix&nbsp;E.&nbsp;Gemini Blueprint OSGi Repository&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;Appendix&nbsp;G.&nbsp;Acknowledgments</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-security.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-security.html
new file mode 100644
index 0000000..c06842d
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-security.html
@@ -0,0 +1,15 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Appendix&nbsp;A.&nbsp;Security Integration</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="appendixes.html" title="Part&nbsp;IV.&nbsp;Appendixes"><link rel="prev" href="appendixes.html" title="Part&nbsp;IV.&nbsp;Appendixes"><link rel="next" href="appendix-pde-integration.html" title="Appendix&nbsp;B.&nbsp;Eclipse Plug-in Development integration"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="appendix-security"></a>Appendix&nbsp;A.&nbsp;Security Integration</h2></div></div></div><p>Since Spring DM 1.2.0, Gemini Blueprint integrates with Java 2 <a href="">security</a>. 
+    Namely Gemini Blueprint uses <a href="">privileged blocks</a> for executing security 
+    sensitive operations using its own permissions. 
+    </p><p>Being a framework, Gemini Blueprint needs to introspect bundles to determine their content and configuration. In general, it is recommended to grant
+    <code class="classname">java.security.AllPermission</code> to Gemini Blueprint bundles. For those that would like to restrict the properties, below you can find a list
+    of permissions that are needed for Gemini Blueprint to work properly. However, we <span class="emphasis"><em>strongly</em></span> recommend to test whether the permissions are needed or
+    not for your environment since the minimum number depends heavily on what parts of the framework are used. 
+    </p><div class="table"><a name="spring-dm-permission-table"></a><p class="title"><b>Table&nbsp;A.1.&nbsp;Gemini Blueprint Permission Table</b></p><div class="table-contents"><table summary="Gemini Blueprint Permission Table" width="100%" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Permission</th><th>Target</th><th>Action</th><th>Usage</th></tr></thead><tbody><tr><td><code class="classname">java.io.FilePermission</code></td><td><span class="emphasis"><em>depends</em></span>, &lt;&lt;ALL FILES&gt;&gt; recommended</td><td>read/write</td><td>Required by the logging system and web extender for installing the wars and JSP taglibs</td></tr><tr><td><code class="classname">java.lang.RuntimePermission</code></td><td>*</td><td>accessDeclaredMembers</td><td>Used in some cases for reflection (such as accessing the <code class="interfacename">BundleContext</code> from a 
+              	given <code class="interfacename">Bundle</code> (on	R4.0 platforms).</td></tr><tr><td><code class="classname">java.lang.reflect.ReflectPermission</code></td><td>*</td><td>suppressAccessChecks</td><td>Used for accessing (through reflection) non-public methods or fields internally.</td></tr><tr><td><code class="classname">java.util.PropertyPermission</code></td><td>*</td><td>read,write</td><td>In use by the testing framework mainy. Useful for reading the environment, including OSGi properties.</td></tr><tr><td><code class="classname">org.osgi.framework.AdminPermission</code></td><td>*</td><td>class, execute, listener, metadata, resolve, resource</td><td>Used by the extender to listen read the content of started bundles.</td></tr><tr><td><code class="classname">org.osgi.framework.BundlePermission</code></td><td>*</td><td>HOST</td><td>Useful when attaching a custom configuration (as fragment) to the extender/web extender.</td></tr><tr><td><code class="classname">org.osgi.framework.PackagePermission</code></td><td>*</td><td>EXPORT, IMPORT</td><td>Basic permission used for importing and exporting the Gemini Blueprint bundles content.</td></tr><tr><td><code class="classname">org.osgi.framework.ServicePermission</code></td><td>*</td><td>get,register</td><td>Used for publishing and lookup of Gemini Blueprint internal services (such as the Spring namespace handlers/resolvers).</td></tr></tbody></table></div></div><br class="table-break"><p>Note that as of Gemini Blueprint 1.0, the extender will use the target bundle permissions for all actions executed on its behalf. That is, loading of
+    classes, publishing the services, importing packages or the method invocations are executed using the bundle credentials just as if the user bundle
+    would </p><p>As a general recommendation, for security sensible environments, to determine the minimum number of permissions start with a basic set of bundles 
+    and no permissions. This way, on each run, one can find out what permissions are needed and by whom and tweak the system accordingly.</p></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="appendixes.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="appendix-pde-integration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part&nbsp;IV.&nbsp;Appendixes&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;Appendix&nbsp;B.&nbsp;Eclipse Plug-in Development integration</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-tips.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-tips.html
new file mode 100644
index 0000000..a4b5e30
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendix-tips.html
@@ -0,0 +1,24 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Appendix&nbsp;C.&nbsp;Useful OSGi tips</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="appendixes.html" title="Part&nbsp;IV.&nbsp;Appendixes"><link rel="prev" href="appendix-pde-integration.html" title="Appendix&nbsp;B.&nbsp;Eclipse Plug-in Development integration"><link rel="next" href="appendix-roadmap.html" title="Appendix&nbsp;D.&nbsp;Roadmap"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="appendix-tips"></a>Appendix&nbsp;C.&nbsp;Useful OSGi tips</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="appendix-tips:fragments"></a>C.1.&nbsp;OSGi Fragments</h2></div></div></div><div class="sidebar"><p class="title"><b>Check the target OSGi platform fragment support</b></p><p>Before using fragments, make sure the target OSGi environment supports them (and to what degree). Out of the OSGi platforms on
+			which Gemini Blueprint is tested upon, at the time of this writing, Apache Felix does not support fragments (it simply ignores them).</p></div><p>Part of the OSGi R4 release, <span class="emphasis"><em>fragments</em></span> are a very useful and powerful feature. A fragment is 
+		&#8220;<span class="quote">a bundle that is <span class="emphasis"><em>attached</em></span> to a <span class="emphasis"><em>host bundle</em></span></span>&#8221;, adding content to the target bundle. 
+		A fragment cannot have its own class loader nor a bundle activator and cannot override the information already present in the host. 
+		In short, through fragments, bundles can be extender with resources, classes and even manifest entries. To quote the spec again, 
+		a &#8220;<span class="quote">...key use case for fragments is providing translation files for different locales. This allows the translation files to be 
+		treated and shipped independently from the main application bundle.</span>&#8221;</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">For a full description on fragments, please see the OSGi specification, section 3.14.</td></tr></table></div><p>In Gemini Blueprint, fragments are useful for configuring various components such as the extenders. To do that, simply bundle the resources as you
+		normally would and add an extra entry to the bundle manifest:</p><pre class="programlisting">Fragment-Host: &lt;host bundle symbolic name&gt;</pre><p>This line indicates that the containing bundle is a fragment and that it should be attached to the host specified by a symbolic name. The fragment
+		and host bundle symbolic name should be different. For example, to attach a fragment (with extra configuration) the Gemini Blueprint extender, one could use
+		the following manifest:</p><div class="programlistingco"><pre class="programlisting">Manifest-Version: 1.0                                                                    <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+Bundle-ManifestVersion: 2                                                                <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+Fragment-Host: org.eclipse.gemini.blueprint.extender                                     <span class="co"><img src="images/callouts/3.png" alt="(3)"></span>
+Bundle-SymbolicName: org.mydomain.project.fragment                                       <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+Bundle-Name: my-fragment                                                                 <span class="co"><img src="images/callouts/5.png" alt="(5)"></span>
+Bundle-Description: Fragment attached to Gemini Blueprint extender                       <span class="co"><img src="images/callouts/6.png" alt="(6)"></span>
+</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Manifest version.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>OSGi bundle version. A value of <code class="literal">1</code> (which is also the default) indicates an OSGi Release 3 bundle so it's best to 
+            specify <code class="literal">2</code> to indicate an OSGi Release 4 bundle.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>The symbolic name of the bundle to which this fragment should be attached to. In this case, the value 
+         	<code class="literal">org.eclipse.gemini.blueprint.extender</code> points to the <code class="literal">spring-osgi-extender.jar</code>.
+         	<code class="literal">Fragment-Host</code> is the <span class="emphasis"><em>key</em></span> entry which tells the OSGi platform that the containing bundle is a of a 
+         	special kind - it's a fragment.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>The fragment symbolic name.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/5.png" alt="5" border="0"></td><td valign="top" align="left"><p>The bundle name - an optional yet useful header.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/6.png" alt="6" border="0"></td><td valign="top" align="left"><p>The bundle description - just like the name, this header is useful for humans not for the OSGi platform itself. However, it is
+         	recommended that you define it to help identify the bundle purpose.</p></td></tr></table></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">The Manifest entries order does not matter, but they case sensitive.</td></tr></table></div><p>When multiple bundles with the same symbolic names are present, one can add the bundle version to make sure the proper wiring is done:</p><pre class="programlisting">Fragment-Host: org.eclipse.gemini.blueprint.extender;bundle-version=1.1.0</pre><p>The default value for <code class="literal">bundle-version</code> (when it's not specified) is <code class="literal">[0.0.0,&#8734;)</code></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="appendix-pde-integration.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="appendix-roadmap.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix&nbsp;B.&nbsp;Eclipse Plug-in Development integration&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;Appendix&nbsp;D.&nbsp;Roadmap</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/appendixes.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendixes.html
new file mode 100644
index 0000000..d2d67c1
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/appendixes.html
@@ -0,0 +1,18 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Part&nbsp;IV.&nbsp;Appendixes</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="links.html" title="Chapter&nbsp;13.&nbsp;Useful Links"><link rel="next" href="appendix-security.html" title="Appendix&nbsp;A.&nbsp;Security Integration"></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="appendixes"></a>Part&nbsp;IV.&nbsp;Appendixes</h1></div></div></div><div class="partintro" lang="en"><div><div><div><h1 class="title"><a name="d18e6180"></a>Document structure</h1></div></div></div><p>
+	  Various appendixes outside the reference documentation.
+      </p><p><a href="appendix-security.html" title="Appendix&nbsp;A.&nbsp;Security Integration">Appendix&nbsp;A, <i xmlns:xlink="http://www.w3.org/1999/xlink">Security Integration</i></a> provides information on how to run Gemini Blueprint 
+      in an OSGi environment with a <code class="classname">SecurityManager</code> enabled 
+      (Java 2 Security activated).
+      </p><p><a href="appendix-pde-integration.html" title="Appendix&nbsp;B.&nbsp;Eclipse Plug-in Development integration">Appendix&nbsp;B, <i xmlns:xlink="http://www.w3.org/1999/xlink">Eclipse Plug-in Development integration</i></a> describes how to integrate Gemini Blueprint
+      with Eclipse Plug-in Development Environment.</p><p><a href="">???</a> describes the Gemini Blueprint Maven 2 archetype
+      usage.</p><p><a href="appendix-tips.html" title="Appendix&nbsp;C.&nbsp;Useful OSGi tips">Appendix&nbsp;C, <i xmlns:xlink="http://www.w3.org/1999/xlink">Useful OSGi tips</i></a> provides some useful OSGi tips, especially
+      meaningful when used along with Gemini Blueprint.</p><p><a href="appendix-roadmap.html" title="Appendix&nbsp;D.&nbsp;Roadmap">Appendix&nbsp;D, <i xmlns:xlink="http://www.w3.org/1999/xlink">Roadmap</i></a> describes some features that are included in
+      the 1.0 distribution but are still considered early-access. The
+      externals of these features may change in future releases. This appendix
+      also discusses other planned features for which no implementation yet
+      exists.</p><p><a href="appendix-osgi-repo.html" title="Appendix&nbsp;E.&nbsp;Gemini Blueprint OSGi Repository">Appendix&nbsp;E, <i xmlns:xlink="http://www.w3.org/1999/xlink">Gemini Blueprint OSGi Repository</i></a> describes the repository used by Gemini Blueprint
+      for its osgi artifacts.</p><p><a href="appendix-schema.html" title="Appendix&nbsp;F.&nbsp;Gemini Blueprint Schema">Appendix&nbsp;F, <i xmlns:xlink="http://www.w3.org/1999/xlink">Gemini Blueprint Schema</i></a> defines the schemas provided by Spring Dynamic
+      Modules.</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="links.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="appendix-security.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;13.&nbsp;Useful Links&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;Appendix&nbsp;A.&nbsp;Security Integration</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/blueprint.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/blueprint.html
new file mode 100644
index 0000000..520296c
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/blueprint.html
@@ -0,0 +1,106 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;6.&nbsp;OSGi 4.2 Blueprint Container</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="reference.html" title="Part&nbsp;II.&nbsp;Reference Documentation"><link rel="prev" href="reference.html" title="Part&nbsp;II.&nbsp;Reference Documentation"><link rel="next" href="bnd-app-ctx.html" title="Chapter&nbsp;7.&nbsp;Bundles and Application Contexts"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="blueprint"></a>Chapter&nbsp;6.&nbsp;OSGi 4.2 Blueprint Container</h2></div></div></div><p>Based on the Gemini Blueprint programming model, the OSGi Alliance introduced in OSGi 4.2 Release
+	the Blueprint Container specification (part of the Compendium Service). Gemini Blueprint 2.0 serves as 
+	the Blueprint Reference <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://en.wikipedia.org/wiki/Reference_implementation" target="_top">Implementation</a>
+	- the official, complete implementation of the spec.
+	</p><p>For this reason, users familiar with Gemini Blueprint, will find Blueprint very familiar and vice versa. 
+	In fact, we recommend that the Blueprint specification is used as a complement to this documentation. It should be
+	mentioned that various aspects of Gemini Blueprint 1.x have been adjusted or slightly changed in 2.0, for consistency reason,
+	to closely follow the Blueprint specification. As a general rule, unless mentioned otherwise, the Gemini Blueprint 2.x and
+	Blueprint behaviour should be the same.</p><p>Existing and new users have the freedom to mix and match the programming model they want, since Eclipse Gemini Blueprint supports 
+	both the Spring DM 1.x declarations and the Blueprint one, inside the same application.
+	That is, one can declare inside the same configuration, beans using both namespaces, at any point, without 
+	having to make an up-front choice.</p><p>Please note that this documentation will focus on Gemini Blueprint specific configurations and option; for Blueprint specific
+	behaviour please refer to the OSGi 4.2 Compendium spec, section 121.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="blueprint:requirements"></a>6.1.&nbsp;Blueprint Requirements</h2></div></div></div><p>The Blueprint Container spec is part of the OSGi 4.2 release and relies on it, in its API. Thus, 
+		in order to use Blueprint, one must use an OSGi 4.2 compatible platform as a runtime environment. Gemini Blueprint itself 
+		requires only an OSGi 4.0 framework so if 4.2 is not an option, one can safely downgrade at the loss of the Blueprint
+		model which can be built on top of Spring/Gemini Blueprint.
+		</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">On environments prior to OSGi 4.2, Gemini Blueprint will disable the Blueprint functionality automatically - users will be notified 
+		through a log message similar to the following:
+
+	    <pre class="screen">Pre-4.2 OSGi platform detected; disabling Blueprint Container functionality</pre></td></tr></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="blueprint:differences"></a>6.2.&nbsp;Blueprint/Gemini Blueprint Differences</h2></div></div></div><p>There are a lot of similarities in terms of functionality and configuration between Gemini Blueprint 1.x and Blueprint which should be 
+		no surprise considering that Spring DM was the basis of the Blueprint spec. In addition to fully supporting the Blueprint configuration schema, 
+		DM 2.x enhanced its declarations by providing option that allow for Blueprint specific behaviour. The table below aggregates the most 
+		important user facing differences between Spring/Gemini Blueprint configurations and Blueprint. Additional comparison information is available
+		throughout the documentation (such as <a href="app-deploy.html#app-deploy:headers:blueprint" title="8.2.&nbsp;Blueprint Manifest Configuration Comparison">Section&nbsp;8.2, &#8220;Blueprint Manifest Configuration Comparison&#8221;</a> or <a href="service-registry.html#service-registry:export:blueprint" title="9.1.10.2.&nbsp;Blueprint service Comparison">Section&nbsp;9.1.10.2, &#8220;Blueprint <code class="literal">service</code> Comparison&#8221;</a>).
+		Again, one can simply switch between the two definition styles, if need be.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="blueprint:differences:xml"></a>6.2.1.&nbsp;XML Declarations</h3></div></div></div><p>Most of the XML declarations are similar between Spring and Blueprint. Using the Spring 
+		<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springsource.org/spring/docs/2.5.x/reference/new-in-2.html#new-in-2-ioc-configuration" target="_top">namespace</a> mechanism, 
+		the same configuration can contain both Spring, Gemini Blueprint, Blueprint and other namespaces. Moreover, custom elements can be used for virtually
+		all elements of a Spring configuration (namespace, bean declaration, decoration, etc...). The table below focuses <span class="emphasis"><em>only</em></span>
+		on the usual, standard Spring namespaces and their Blueprint equivalent.</p><div class="table"><a name="spring-vs-blueprint-xml"></a><p class="title"><b>Table&nbsp;6.1.&nbsp;XML Configuration Differences</b></p><div class="table-contents"><table summary="XML Configuration Differences" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Element/Attribute</th><th>Gemini Blueprint</th><th>Blueprint</th></tr></thead><tbody><tr><td>Namespace Declaration</td><td><p><code class="literal">http://www.springframework.org/schema/beans</code></p> 
+                <p>or <code class="literal">http://www.springframework.org/schema/osgi</code></p></td><td><code class="literal">http://www.osgi.org/xmlns/blueprint/v1.0.0</code></td></tr><tr><td>Root Element</td><td><code class="literal">&lt;beans&gt;</code></td><td><code class="literal">&lt;blueprint&gt;</code></td></tr><tr><td>Default Lazy</td><td><code class="literal">default-lazy</code></td><td><code class="literal">default-activation</code></td></tr><tr><td>Default Init Method</td><td><code class="literal">default-init-method</code></td><td><code class="literal">-</code></td></tr><tr><td>Default Destroy Method</td><td><code class="literal">default-destroy-method</code></td><td><code class="literal">-</code></td></tr><tr><td>Default Autowire Strategy</td><td><code class="literal">default-autowire</code>, <code class="literal">default-autowire-candidates</code></td><td><code class="literal">-</code></td></tr><tr><td>Root Element</td><td><code class="literal">&lt;beans&gt;</code></td><td><code class="literal">&lt;blueprint&gt;</code></td></tr><tr><td>Bean ID</td><td><code class="literal">id</code></td><td><code class="literal">id</code></td></tr><tr><td>Bean Name/Alias</td><td><code class="literal">name</code>/<code class="literal">&lt;alias&gt;</code></td><td><code class="literal">-</code></td></tr><tr><td>Bean Class</td><td><code class="literal">class</code></td><td><code class="literal">class</code></td></tr><tr><td>Bean Scope Name</td><td><code class="literal">scope</code></td><td><code class="literal">scope</code></td></tr><tr><td>Built-in Scopes</td><td><code class="literal">singleton</code>, <code class="literal">prototype</code>, <code class="literal">request</code>, <code class="literal">session</code>, <code class="literal">bundle</code></td><td><code class="literal">singleton</code>, <code class="literal">prototype</code></td></tr><tr><td>Lazy Initialization Name/Values</td><td><code class="literal">lazy-init</code>=<code class="literal">true/false</code></td><td><code class="literal">activation</code>=<code class="literal">lazy/eager</code></td></tr><tr><td>Depends</td><td><code class="literal">depends-on</code></td><td><code class="literal">depends-on</code></td></tr><tr><td>Init Method</td><td><code class="literal">init-method</code></td><td><code class="literal">init-method</code></td></tr><tr><td>Destroy Method</td><td><code class="literal">destroy-method</code></td><td><code class="literal">destroy-method</code></td></tr><tr><td>Factory Method</td><td><code class="literal">factory-method</code></td><td><code class="literal">factory-method</code></td></tr><tr><td>Factory Bean</td><td><code class="literal">factory-bean</code></td><td><code class="literal">factory-ref</code></td></tr><tr><td>Bean Inheritance</td><td><code class="literal">parent</code></td><td><code class="literal">-</code></td></tr><tr><td>Autowire Strategy</td><td><code class="literal">autowire</code>, <code class="literal">autowire-candidate</code></td><td><code class="literal">-</code></td></tr><tr><td>Constructor</td><td><code class="literal">&lt;constructor-arg&gt;</code></td><td><code class="literal">&lt;argument&gt;</code></td></tr><tr><td>Property</td><td><code class="literal">&lt;property&gt;</code></td><td><code class="literal">&lt;property&gt;</code></td></tr><tr><td>Value</td><td><code class="literal">&lt;value&gt;</code></td><td><code class="literal">&lt;value&gt;</code></td></tr><tr><td>Service Exporter</td><td><code class="literal">&lt;service&gt;</code></td><td><code class="literal">&lt;service&gt;</code></td></tr><tr><td>Service Importer</td><td><code class="literal">&lt;reference&gt;/&lt;list&gt;/&lt;set&gt;</code></td><td><code class="literal">&lt;reference&gt;/&lt;list&gt;</code></td></tr></tbody></table></div></div><br class="table-break"><p>The configurations below are equivalent in terms of functionality:</p><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8"?</span>&gt;
+&lt;<span class="hl-tag">blueprint</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span> <span class="hl-attribute">default-activation</span>=<span class="hl-value">"lazy"</span>&gt;
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"object"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.lang.Object"</span>/&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"length"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.lang.Integer"</span>&gt;
+        &lt;<span class="hl-tag">argument</span> <span class="hl-attribute">value</span>=<span class="hl-value">"4"</span>/&gt;
+    &lt;<span class="hl-tag">/bean</span>&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"buffer"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.lang.StringBuffer"</span> <span class="hl-attribute">depends-on</span>=<span class="hl-value">"simple"</span>&gt;
+    	&lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"length"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"length"</span>/&gt;
+    &lt;<span class="hl-tag">/bean</span>&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"current-time"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.lang.System"</span> <span class="hl-attribute">factory-method</span>=<span class="hl-value">"currentTimeMillis"</span> <span class="hl-attribute">scope</span>=<span class="hl-value">"prototype"</span>/&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"list"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.util.ArrayList"</span> <span class="hl-attribute">destroy-method</span>=<span class="hl-value">"clear"</span> <span class="hl-attribute">activation</span>=<span class="hl-value">"eager"</span>&gt;
+    	&lt;<span class="hl-tag">argument</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"length"</span>/&gt;
+    &lt;<span class="hl-tag">/bean</span>&gt;
+&lt;<span class="hl-tag">/blueprint</span>&gt;</pre><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8"?</span>&gt;
+&lt;<span class="hl-tag">beans</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>
+    <span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+    <span class="hl-attribute">xsi:schemaLocation</span>=<span class="hl-value">"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"</span>
+    <span class="hl-attribute">default-lazy-init</span>=<span class="hl-value">"true"</span>&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"object"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.lang.Object"</span>/&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"length"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.lang.Integer"</span>&gt;
+        &lt;<span class="hl-tag">constructor-arg</span> <span class="hl-attribute">value</span>=<span class="hl-value">"4"</span>/&gt;
+    &lt;<span class="hl-tag">/bean</span>&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"buffer"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.lang.StringBuffer"</span> <span class="hl-attribute">depends-on</span>=<span class="hl-value">"simple"</span>&gt;
+    	&lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"length"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"length"</span>/&gt;
+    &lt;<span class="hl-tag">/bean</span>&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"current-time"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.lang.System"</span> <span class="hl-attribute">factory-method</span>=<span class="hl-value">"currentTimeMillis"</span> <span class="hl-attribute">scope</span>=<span class="hl-value">"prototype"</span>/&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"list"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.util.ArrayList"</span> <span class="hl-attribute">destroy-method</span>=<span class="hl-value">"clear"</span> <span class="hl-attribute">lazy-init</span>=<span class="hl-value">"false"</span>&gt;
+    	&lt;<span class="hl-tag">constructor-arg</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"length"</span>/&gt;
+    &lt;<span class="hl-tag">/bean</span>&gt;
+&lt;<span class="hl-tag">/beans</span>&gt;</pre><p>As mentioned before, in Gemini Blueprint one can mix and match the namespaces:</p><pre class="programlisting">&lt;<span class="hl-tag">beans</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>
+	<span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+	<span class="hl-attribute">xmlns:bp</span>=<span class="hl-value">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>
+	<span class="hl-attribute">xmlns:p</span>=<span class="hl-value">"http://www.springframework.org/schema/p"</span>
+	<span class="hl-attribute">xmlns:osgi</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi"</span>
+	<span class="hl-attribute">xmlns:task</span>=<span class="hl-value">"http://www.springframework.org/schema/task"</span>
+	<span class="hl-attribute">xmlns:util</span>=<span class="hl-value">"http://www.springframework.org/schema/util"</span>
+	<span class="hl-attribute">xsi:schemaLocation</span>=<span class="hl-value">"
+		http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
+		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+		http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
+		http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd		
+		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"</span>&gt;
+    
+    &lt;<span class="hl-tag">util:constant</span> <span class="hl-attribute">id</span>=<span class="hl-value">"thread-priority"</span> <span class="hl-attribute">static-field</span>=<span class="hl-value">"java.lang.Thread.MIN_PRIORITY"</span>/&gt;
+    
+    &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"exampleThread"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"java.lang.Thread"</span> <span class="hl-attribute">p:priority-ref</span>=<span class="hl-value">"thread-priority"</span>&gt;
+    	&lt;<span class="hl-tag">constructor-arg</span>&gt;
+    	   &lt;<span class="hl-tag">bp:bean</span> <span class="hl-attribute">class</span>=<span class="hl-value">"org.example.SomeRunnable"</span>/&gt;
+    	&lt;<span class="hl-tag">/constructor-arg</span>&gt;
+    &lt;<span class="hl-tag">/bean</span>&gt;
+    
+    &lt;<span class="hl-tag">task:executor</span> <span class="hl-attribute">id</span>=<span class="hl-value">"rangeWithBoundedQueue"</span> <span class="hl-attribute">size</span>=<span class="hl-value">"7-42"</span> <span class="hl-attribute">queue-capacity</span>=<span class="hl-value">"#{ T(java.lang.Math).random() * 30.0 }"</span>/&gt;
+
+    &lt;<span class="hl-tag">bp:reference-list</span> <span class="hl-attribute">id</span>=<span class="hl-value">"cloneableServices"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"java.lang.Cloneable"</span> /&gt;
+&lt;<span class="hl-tag">beans</span>&gt;</pre><p>The example above, uses the Spring <code class="literal">beans</code>, <code class="literal">util</code>, <code class="literal">p</code>, Spring Expression Language (SpEL)
+		and the <code class="literal">task</code> namespace introduced in Spring 3.x, and Gemini Blueprint namespace.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="blueprint:differences:container"></a>6.2.2.&nbsp;Container Capabilities</h3></div></div></div><p>From a container perspective, the Blueprint spec standardizes the a subset of the Spring container. A high-level view comparison, by no 
+		means comprehensive, is summarized in the table below:</p><div class="table"><a name="spring-vs-blueprint-container"></a><p class="title"><b>Table&nbsp;6.2.&nbsp;Container Capabilities Differences</b></p><div class="table-contents"><table summary="Container Capabilities Differences" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Feature</th><th>Gemini Blueprint</th><th>Blueprint</th></tr></thead><tbody><tr><td colspan="3" align="center"><span class="emphasis"><em>Object Instantiation</em></span></td></tr><tr><td>Constructor Instantiation</td><td>Y</td><td>Y</td></tr><tr><td>Static Factory Instantiation</td><td>Y</td><td>Y</td></tr><tr><td>Instance Factory Instantiation</td><td>Y</td><td>Y</td></tr><tr><td colspan="3" align="center"><span class="emphasis"><em>Dependency Injection</em></span></td></tr><tr><td>Constructor Injection</td><td>Y</td><td>Y</td></tr><tr><td>Setter Injection</td><td>Y</td><td>Y</td></tr><tr><td>Field Injection</td><td>Y</td><td>N</td></tr><tr><td>Method Injection</td><td>Y</td><td>N</td></tr><tr><td>Arbitrary Method Injection</td><td>Y</td><td>N</td></tr><tr><td>Autowiring</td><td>Y</td><td>N</td></tr><tr><td colspan="3" align="center"><span class="emphasis"><em>Component Lifecycle</em></span></td></tr><tr><td>Lazy Initialization</td><td>Y</td><td>Y</td></tr><tr><td>Bean Scopes</td><td>Y</td><td>Y</td></tr><tr><td>Custom Bean Scopes</td><td>Y</td><td>N</td></tr><tr><td>Built-in Callbacks</td><td>Y</td><td>N</td></tr><tr><td>Custom Callbacks</td><td>Y</td><td>Y</td></tr><tr><td>Initialization Processing</td><td>Y</td><td>N</td></tr></tbody></table></div></div><br class="table-break"><p>As with the XML configuration, since Gemini Blueprint translates the Blueprint configuration into Spring metadata, one can rely on Spring for features
+		beyond the Blueprint container. For example, one can configure a bean using Blueprint and use annotation on the same instance, for field injection. 
+		The same object can implement Spring's <code class="literal">Aware</code> interfaces or rely on other post processors for certain behaviour.</p></div><p>Note that additional information on Blueprint is available through out the documentation.	These being said, it is highly recommended to read 
+		and use the Blueprint specification as guidance, if the Blueprint Container becomes	the programming model of choice.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="blueprint:using"></a>6.3.&nbsp;Using Blueprint</h2></div></div></div><p>There are no extra jars or steps that need to be executed to <span class="emphasis"><em>enable</em></span> the Blueprint functionality in Gemini Blueprint. 
+		This is built directly into the core, in fact the Blueprint APIs are exported by the Gemini Blueprint core. Please see the next section for 
+		information on how to install Gemini Blueprint and the OSGi compendium spec (section 121) for Blueprint related information such as bootstrapping
+		and configuration locations. For those in a hurry, simply install and start the Gemini Blueprint jars (io, core, extender) and their dependencies
+		(namely Spring and slf4j) and you should be all set: Gemini Blueprint will automatically detect the running environment and the types of bundles started.
+		</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="reference.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="bnd-app-ctx.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part&nbsp;II.&nbsp;Reference Documentation&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;7.&nbsp;Bundles and Application Contexts</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/bnd-app-ctx.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/bnd-app-ctx.html
new file mode 100644
index 0000000..843f4ca
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/bnd-app-ctx.html
@@ -0,0 +1,207 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;7.&nbsp;Bundles and Application Contexts</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="reference.html" title="Part&nbsp;II.&nbsp;Reference Documentation"><link rel="prev" href="blueprint.html" title="Chapter&nbsp;6.&nbsp;OSGi 4.2 Blueprint Container"><link rel="next" href="app-deploy.html" title="Chapter&nbsp;8.&nbsp;Packaging and Deploying Spring-based OSGi applications"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="bnd-app-ctx"></a>Chapter&nbsp;7.&nbsp;Bundles and Application Contexts</h2></div></div></div><p>The unit of deployment (and modularity) in OSGi is the <span class="emphasis"><em>bundle</em></span> (see
+    section 3.2 of the OSGi Service Platform Core Specification). A bundle
+    known to the OSGi runtime is in one of three steady states: installed,
+    resolved, or active. Bundles may export services (objects) to the OSGi
+    service registry, and by so doing make these services available for other
+    bundles to discover and to use. Bundles may also export Java packages,
+    enabling other bundles to import the exported types.</p><p>In Spring the primary unit of modularity is an <span class="emphasis"><em>application context</em></span>,
+    which contains some number of beans (objects managed by the Spring
+    application context). Application contexts can be configured in a
+    hierarchy such that a child application context can see beans defined in a
+    parent, but not vice-versa. The Spring concepts of exporters and factory
+    beans are used to export references to beans to clients outside of the
+    application context, and to inject references to services that are defined
+    outside of the application context.</p><p>There is a natural affinity between an OSGi bundle and a Spring
+    application context. Using Gemini Blueprint, an active bundle may
+    contain a Spring application context, responsible for the instantiation,
+    configuration, assembly, and decoration of the objects (beans) within the
+    bundle. Some of these beans may optionally be exported as OSGi services
+    and thus made available to other bundles; beans within the bundle may also
+    be transparently injected with references to OSGi services.</p><p>This chapter describes the lifecycle relationship between bundles and their 
+    application contexts, as imposed by Gemini Blueprint based on the events occurring at runtime,
+    inside an OSGi environment.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bnd-app-ctx:extender"></a>7.1.&nbsp;The Gemini Blueprint Extender Bundle</h2></div></div></div><div class="sidebar"><a name="extender-pattern"></a><p class="title"><b>Extender Pattern</b></p><p>A common pattern in OSGi applications is the <span class="emphasis"><em>extender</em></span>, that 
+		(quoting <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.aqute.biz/Blog/HomePage" target="_top">Peter Kriens</a>, 
+		OSGi Technical Director), &#8220;<span class="quote">allows other bundles to extend the functionality in a specific domain</span>&#8221;.
+		See <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org/blog/2007/02/osgi-extender-model.html" target="_top">this</a> OSGi Alliance blog
+		entry for an in-depth explanation.
+		</p></div><p>The component responsible for detecting the <span class="emphasis"><em>Spring-powered bundles</em></span> and instantiating 
+      their application context is the Gemini Blueprint <span class="emphasis"><em>extender</em></span>. It serves the same purpose as the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/webintegration.html" target="_top">ContextLoaderListener</a>
+      does for Spring web applications. Once the extender bundle is installed
+      and started it looks for any existing Spring-powered bundles that are
+      already in the <span class="emphasis"><em>ACTIVE</em></span> state and creates application contexts on their
+      behalf. In addition, it listens for bundle starting events and
+      automatically creates an application context for any Spring-powered
+      bundle that is subsequently started. <a href="app-deploy.html#app-deploy:headers" title="8.1.&nbsp;Bundle Format And Manifest Headers">Section&nbsp;8.1, &#8220;Bundle Format And Manifest Headers&#8221;</a>
+      describes what the extender recognizes as a "Spring-powered bundle" while 
+      <a href="app-deploy.html#app-deploy:extender-configuration" title="8.3.&nbsp;Extender Configuration Options">Section&nbsp;8.3, &#8220;Extender Configuration Options&#8221;</a> how the extender can be configured.
+      The extender monitors the lifecycle of the bundle it manages and will destroy automatically the contexts for bundles
+      that are stopped. When the extender bundle itself is stopped, it will automatically close all the contexts that it manages,
+      based on the service dependency between them.
+      The extender bundle symbolic name is <code class="literal">org.eclipse.gemini.blueprint.extender</code>. </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bnd-app-ctx:app-creation"></a>7.2.&nbsp;Application Context Creation</h2></div></div></div><p>Once started, the extender analyses the existing started bundles and monitors any new bundle that will start. Once a
+      Blueprint or Gemini Blueprint configuration is detected, the extender will create an application context for it in an asynchronous manner,
+      on a different thread then the one starting the bundle (or delivering the STARTED event).
+      This behaviour follows the OSGi specification recommendation and ensures that starting an OSGi Service Platform is fast and that 
+      bundles with service inter-dependencies do not cause deadlock (waiting for each other) on startup, as pictured below: </p><div class="mediaobject" align="center"><img src="images/start-diagram.png" align="middle" alt="Application Context Sequence Diagram"></div><p>The extender considers only bundles successfully started, that is, bundles in 
+      <span class="emphasis"><em>ACTIVE</em></span> state; bundles in other states are ignored.    
+      Therefore a Spring-powered/Blueprint bundle will have its application context created <span class="emphasis"><em>after</em></span>
+      it has been fully started. It is possible to force synchronous/serialized creation of application contexts 
+      for started bundles, on a bundle-by-bundle basis. See <a href="app-deploy.html#app-deploy:headers" title="8.1.&nbsp;Bundle Format And Manifest Headers">Section&nbsp;8.1, &#8220;Bundle Format And Manifest Headers&#8221;</a> for information 
+      on how to specify this behaviour.</p><p>If application context creation fails for any reason then the
+      failure cause is logged. The bundle remains in the ACTIVE state; the application context lifecycle will not influence
+      the bundle lifecycle in anyway. Naturally, since the context has failed, so will the functionality associated with it;
+      for example there will be no services exported to the registry from the application context in this scenario.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="bnd-app-ctx:app-creation:mandatory-deps"></a>7.2.1.&nbsp;Mandatory Service Dependencies</h3></div></div></div><p>If an application context declares mandatory availability for certain
+        imported OSGi services, the creation of the application context is blocked 
+        until all the mandatory dependencies can be satisfied through matching services 
+        available in the OSGi service registry. In practice, for most enterprise applications
+        built using Gemini Blueprint services, the set of available
+        services and bundles will reach a steady state once the platform and
+        its installed bundles are all started. In such a world, the behaviour of
+        waiting for mandatory dependencies simply ensures that bundles A and
+        B, where bundle A depends on services exported by bundle B, may be
+        started in any order.</p><p>A timeout applies to the wait for mandatory dependencies to be
+        satisfied. By default the timeout is set to 5 minutes, but this value
+        can be configured using the <code class="literal">timeout</code> directive. See
+        <a href="app-deploy.html#app-deploy:headers" title="8.1.&nbsp;Bundle Format And Manifest Headers">Section&nbsp;8.1, &#8220;Bundle Format And Manifest Headers&#8221;</a> for details.</p><p>Blueprint users could achieve the same result through the <code class="literal">blueprint.timeout</code> 
+		attribute declared on the <code class="literal">Bundle-SymbolicName</code></p><p>It is possible to change the application context creation
+        semantics so that application context creation fails if all mandatory
+        services are not immediately available upon startup (see the aforementioned 
+        section for more information).
+        Again, note that regardless of the configuration chosen, the failure of the
+        application context will not change the bundle state.</p><p>For more information on the <span class="emphasis"><em>availability</em></span> of imported services,
+        see <a href="service-registry.html#service-registry:refs:availability" title="9.2.1.&nbsp;Imported Service Availability">Section&nbsp;9.2.1, &#8220;Imported Service Availability&#8221;</a></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="bnd-app-ctx:app-creation:app-ctx-publication"></a>7.2.2.&nbsp;Application Context Service Publication</h3></div></div></div><p>Once the application context creation for a bundle has
+        completed, the application context object is automatically exported as
+        a service available through the OSGi Service Registry. The context is
+        published under the interface
+        <code class="interfacename">org.springframework.context.ApplicationContext</code> (and
+        also all of the visible super-interfaces and types implemented by the
+        context). The published service has a service property named
+        <code class="literal">org.springframework.context.service.name</code> whose
+        value is set to the bundle symbolic name of the bundle hosting the
+        application context. In case of a Blueprint bundle, the container will be published
+        under <code class="interfacename">org.osgi.service.blueprint.container.BlueprintContainer</code>
+        while the bundle symbolic name will be published under <code class="literal">osgi.blueprint.container.symbolicname</code>
+        property. 
+        </p><p>It is possible to prevent publication of the
+        application context as a service using a directive in the bundle's
+        manifest. See <a href="app-deploy.html#app-deploy:headers" title="8.1.&nbsp;Bundle Format And Manifest Headers">Section&nbsp;8.1, &#8220;Bundle Format And Manifest Headers&#8221;</a> for details.</p><p>Note: the application context is published as a service
+        primarily to facilitate testing, administration, and management.
+        Accessing this context object at runtime and invoking
+        <code class="literal">getBean()</code> or similar operations is discouraged. The
+        preferred way to access a bean defined in another application context
+        is to export that bean as an OSGi service from the defining context,
+        and then to import a reference to that service in the context that
+        needs access to the service. Going via the service registry in this
+        way ensures that a bean only sees services with compatible versions of
+        service types, and that OSGi platform dynamics are respected.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bnd-app-ctx:bnd-lifecycle"></a>7.3.&nbsp;Bundle Lifecycle</h2></div></div></div><p>OSGi is a dynamic platform: bundles may be installed, started,
+      updated, stopped, and uninstalled at any time during the running of the
+      framework.</p><p>When an active bundle is stopped, any services it exported during
+      its lifetime are automatically unregistered and the bundle returns to
+      the resolved state. A stopped bundle should release any resources it has
+      acquired and terminate any threads. Packages exported by a stopped
+      bundle continue to be available to other bundles.</p><p>A bundle in the resolved state may be uninstalled: packages that
+      were exported by an uninstalled bundle continue to be available to
+      bundles that imported them (but not to newly installed bundles).A bundle 
+      in the resolved state may also be updated. The update
+      process migrates from one version of a bundle to another version of the
+      same bundle.</p><p>Finally of course, a resolved bundle can be started, which
+      transitions it to the active state.</p><p>The diagram below represents the bundle states and its transitions:</p><div class="mediaobject" align="center"><img src="images/bundle-states.png" align="middle" alt="Bundle States"></div><p>The OSGi <code class="literal">PackageAdmin</code>
+      <code class="literal">refreshPackages</code> operation refreshes packages across
+      the whole OSGi framework or a given subset of installed bundles. During
+      the refresh, an application context in an affected bundle will be
+      stopped and restarted. After a <code class="literal">refreshPackages</code>
+      operation, packages exported by older versions of updated bundles, or
+      packages exported by uninstalled bundles, are no longer available.
+      Consult the OSGi specifications for full details.</p><p>When a Spring-powered or Blueprint bundle is stopped, the application context
+      created for it is automatically destroyed. All services exported by the
+      bundle will be unregistered (removed from the service registry) and the
+      normal application context tear-down life-cycle is observed
+      (<code class="interfacename">org.springframework.beans.factory.DisposableBean</code> implementors 
+      and <code class="literal">destroy-method</code>
+      callbacks are invoked on beans in the context).</p><p>If a Spring-powered bundle that has been stopped is subsequently
+      re-started, a new application context will be created for it.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bnd-app-ctx:osgi-resource"></a>7.4.&nbsp;The Resource Abstraction</h2></div></div></div><p>The Spring Framework defines a resource abstraction for loading
+      resources within an application context (see <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/resources.html" target="_top">Spring's
+      resource abstraction</a>). All resource loading is done through the
+      <code class="interfacename">org.springframework.core.io.ResourceLoader</code> associated with the application
+      context. The <code class="interfacename">org.springframework.core.io.ResourceLoader</code> is also 
+      available to beans wishing to load resources programmatically. Resource paths with
+      explicit prefixes - such as <code class="literal">classpath:</code> - are treated uniformly
+      across all application context types (for example, web application
+      contexts and classpath-based application contexts). Relative resource
+      paths are interpreted differently based on the type of application
+      context being created. This enables easy integration testing outside
+      the ultimate deployment environment.</p><p>OSGi 4.0.x specification defines three different spaces from which a
+	  resource can be loaded. Gemini Blueprint supports all of them through its dedicated OSGi-specific
+	  application context and dedicated prefixes:</p><div class="table"><a name="osgi-search-strategies"></a><p class="title"><b>Table&nbsp;7.1.&nbsp;OSGi resource search strategies</b></p><div class="table-contents"><table summary="OSGi resource search strategies" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>OSGi Search Strategy</th><th>Prefix</th><th>Explanation</th></tr></thead><tbody><tr><td>Class Space</td><td><code class="literal">classpath:</code></td><td>Searches the bundle classloader (the bundle, all imported packages and required bundles). Forces the bundle to be resolved.
+                This method has similar semantics to 
+                <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www2.osgi.org/javadoc/r4/org/osgi/framework/Bundle.html#getResource(java.lang.String)" target="_top"><code class="literal">Bundle#getResource(String)</code></a></td></tr><tr><td>Class Space</td><td><code class="literal">classpath*:</code></td><td>Searches the bundle classloader (the bundle and all imported packages and required bundles). Forces the bundle to be resolved.
+                This method has similar semantics to 
+                <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www2.osgi.org/javadoc/r4/org/osgi/framework/Bundle.html#getResources(java.lang.String)" target="_top"><code class="literal">Bundle#getResources(String)</code></a>
+                </td></tr><tr><td>JAR File (or JarSpace)</td><td><code class="literal">osgibundlejar:</code></td><td>Searches only the bundle jar. Provides low-level access without requiring the bundle to be resolved.</td></tr><tr><td>Bundle Space</td><td><code class="literal">osgibundle:</code></td><td>Searches the bundle jar and its attached fragments (if there are any). Does not create a class loader or force the bundle to be resolved.</td></tr></tbody></table></div></div><br class="table-break"><p>Please consult section 4.3.12 of the OSGi specification for an in depth explanation of the differences between them.
+	  </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">If no prefix is specified, the bundle space (<code class="literal">osgibundle:</code>) will be used.</td></tr></table></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">Due to the OSGi dynamic nature, a bundle classpath can change during its life time (for example when dynamic imports are used). This might cause different
+	  classpath <code class="interfacename">Resource</code>s to be returned when doing pattern matching based on the running environment or target platform.</td></tr></table></div><p>All of the regular Spring resource prefixes such as <code class="literal">file:</code> and
+      <code class="literal">http:</code> are also supported, as are the pattern matching wildcards.
+      Resources loaded using such prefixes may come from any location, they
+      are not restricted to being defined within the resource-loading bundle
+      or its attached fragments.</p><p>OSGi platforms may define their own unique prefixes for accessing
+      bundle contents. For example, Equinox defines the <code class="literal">bundleresource:</code> and
+      <code class="literal">bundlentry:</code> prefixes. These platform specific prefixes may also be
+      used with Gemini Blueprint, at the cost, of course, of tying yourself to a
+      particular OSGi implementation.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bnd-app-ctx:bundle-scope"></a>7.5.&nbsp;Bundle Scope</h2></div></div></div><p>Gemini Blueprint introduces a new bean scope named <code class="literal">bundle</code>. This scope is relevant for
+      beans exported as an OSGi service and can be described as <span class="emphasis"><em>one instance per bundle</em></span>. 
+      Beans exported as OSGi service, that have <code class="literal">bundle</code> scope, will result in a different instance created for 
+      each unique bundle that imports the service through the OSGi service registry. Consumers of the same bundle (whether defined
+      through Gemini Blueprint or not) will see the same bean instance. When a bundle has stopped importing the bundle (for whatever reason),
+      the bean instance is disposed.
+	  To the declaring bundle, a <code class="literal">bundle</code>-scoped bean behaves just like a singleton (i.e. there is only
+	  one instance per bundle, including the declaring one).This contract lifecycle is similar to that of the 
+	  <code class="interfacename">org.osgi.framework.ServiceFactory</code> interface.</p><p>For more information regarding service publication and consumption, see <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>.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/admons/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top">The bundle scope is relevant, only if the declaring bean is consumed through the OSGi service registry. That is,
+	  instances are created and destroyed (tracked) only when the bean exported as a service, is requested or released as an OSGi service
+	  by other bundles.</td></tr></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bnd-app-ctx:access-bnd-ctx"></a>7.6.&nbsp;Accessing the BundleContext</h2></div></div></div><p>In general there is no need to depend on any OSGi APIs when using
+      the Gemini Blueprint support. If you <span class="emphasis"><em>do</em></span> need
+      access to the OSGi <code class="interfacename">BundleContext</code> object for your
+      bundle, then Spring makes this easy to do.</p><p>The OSGi application context created by the Spring extender will
+      automatically contain a bean of type <code class="interfacename">BundleContext</code>
+      and with name <code class="literal">bundleContext</code>. You can inject a
+      reference to this bean into any bean in the application context either
+      by-name or by-type. In addition, Gemini Blueprint defines the
+      interface
+      <code class="interfacename">org.eclipse.gemini.blueprint.context.BundleContextAware</code>:</p><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">interface</span> BundleContextAware {
+  <span class="hl-keyword">public</span> <span class="hl-keyword">void</span> setBundleContext(BundleContext context);
+}</pre><p>Any bean implementing this interface will be injected with a
+      reference to the bundle context when it is configured by Spring. If you
+      wish to use this facility within a bundle, remember to import the
+      package <code class="literal">org.eclipse.gemini.blueprint.context</code> in your
+      bundle manifest since otherwise the interface will not be visible to your bundle.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bnd-app-ctx:app-destruction"></a>7.7.&nbsp;Application Context Destruction</h2></div></div></div><p>The application context is bound to the bundle in which it lives. Thus, if the declaring 
+      bundle is being shutdown (for whatever reasons), the application context will be destroyed as well,
+      all exported services being unregistered and all service imported dispose of.
+      </p><p>As opposed to the application creation, the application context is destroyed in a synchronized manner,
+      on the same thread that stops the bundle. This is required since once stopped, a bundle can not longer be used
+      (even for class loading) preventing the application context shutdown from executing correctly.
+      </p><div class="mediaobject" align="center"><img src="images/stop-diagram.png" align="middle" alt="Application Context Sequence Diagram"></div><p>Note that a bundle can be closed individually or as part of a bigger
+      event such as shutting down the entire OSGi platform. In this case or when the extender
+      bundle is being closed down, the application contexts will be closed in a managed
+      manner, based on the service dependencies between them. Please see the next section for more
+      details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bnd-app-ctx:access-bnd-ctx:stop-extender"></a>7.8.&nbsp;Stopping the Extender Bundle</h2></div></div></div><div class="sidebar"><a name="shutdown-2.x"></a><p class="title"><b>Shutdown algorithm change in 2.x</b></p><p>The shutdown algorithm implementation in Gemini Blueprint 1.0 has been revised to be better
+		aligned with the Blueprint Container spec. Namely, the previous implementation performed ordering
+		in only one pass while the latter performs multiple steps to accommodate the service changes in
+		the OSGi space. Users should not discover any differences at runtime however, if that's not the case,
+		please let us know.
+		</p></div><p>If the extender bundle is stopped, then all the application
+      contexts created by the extender will be destroyed. The algorithm described here is identical
+      to that used by the Blueprint specification (section 121.3.11). Application contexts
+      are shutdown in the following order:</p><div class="orderedlist"><ol type="1"><li><p><a name="bnd-app-ctx:access-bnd-ctx:stop-extender:shutdown.step.1"></a>Application contexts that do not export any services, or that
+          export services that are not currently referenced, are shutdown in
+          reverse order of bundle id. (Most recently installed bundles have
+          their application contexts shutdown first).</p></li><li><p>Shutting down the application contexts in step 1 may have
+          released references these contexts were holding such that there are
+          now additional application contexts that can be shutdown. If so,
+          repeat <a href="bnd-app-ctx.html#bnd-app-ctx:access-bnd-ctx:stop-extender:shutdown.step.1">step 1</a> again.</p></li><li><p>If there are no more active application contexts, we have
+          finished. If there <span class="emphasis"><em>are</em></span> active application
+          contexts then there must be a cyclic dependency of references. The
+          circle is broken by determining the highest ranking service exported
+          by each context: the bundle with the lowest ranking service in this
+          set (or in the event of a tie, the highest service id), is shut
+          down. Repeat from <a href="bnd-app-ctx.html#bnd-app-ctx:access-bnd-ctx:stop-extender:shutdown.step.1">step 1</a>.</p></li></ol></div></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="blueprint.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="app-deploy.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;6.&nbsp;OSGi 4.2 Blueprint Container&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;8.&nbsp;Packaging and Deploying Spring-based OSGi applications</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/bundles.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/bundles.html
new file mode 100644
index 0000000..ea31493
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/bundles.html
@@ -0,0 +1,38 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;10.&nbsp;Working With Bundles</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="reference.html" title="Part&nbsp;II.&nbsp;Reference Documentation"><link rel="prev" href="service-registry.html" title="Chapter&nbsp;9.&nbsp;The Service Registry"><link rel="next" href="compendium.html" title="Chapter&nbsp;11.&nbsp;Compendium Services"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="bundles"></a>Chapter&nbsp;10.&nbsp;Working With Bundles</h2></div></div></div><p>Gemini Blueprint offers a dedicated schema element for interacting with existing
+    bundles or for installing new ones. While it is not intended to be used as a replacement
+    for proper OSGi services, the <code class="literal">bundle</code> element offers a very
+    easy way of executing actions on bundles based on the lifecycle of the application
+    context. 
+    </p><p>The <code class="literal">bundle</code> element defines a bean of type
+    <code class="interfacename">org.osgi.framework.Bundle</code>. It provides a simple way to
+    work directly with bundles, including driving their lifecycle. In the
+    simplest case all you need to do is specify the
+    <code class="literal">symbolic-name</code> of the bundle you are interested
+    in:</p><pre class="programlisting">&lt;<span class="hl-tag">bundle</span> <span class="hl-attribute">id</span>=<span class="hl-value">"aBundle"</span> <span class="hl-attribute">symbolic-name</span>=<span class="hl-value">"org.xyz.abundle"</span>/&gt;</pre><p>The bean <code class="literal">aBundle</code> can now be injected into any property of 
+    type <code class="interfacename">Bundle</code>.</p><p>If the needed bundle is not installed, one can use <code class="literal">location</code> attribute
+    to indicate install or/and the <code class="literal">action</code>/<code class="literal">destroy-action</code> attributes
+    provide declarative control over the bundle's lifecycle. The <code class="literal">location</code> attribute is 
+    used to specify a URL where the bundle jar file artifact can be found. The
+    <code class="literal">action</code> attribute specifies the lifecycle operation to
+    be invoked on the bundle object. The supported action values are
+    <code class="literal">install</code>, <code class="literal">start</code>,
+    <code class="literal">update</code>, <code class="literal">stop</code>, and
+    <code class="literal">uninstall</code>. These actions have the same semantics as the
+    operations of the corresponding names defined on the
+    <code class="literal">Bundle</code> interface (see the OSGi Service Platform Core
+    Specification), with the exception that pre-conditions are weakened to
+    allow for example a <span class="emphasis"><em>start</em></span> action to be specified against a bundle that
+    is not currently installed (it will be installed first).</p><p>The following table shows how actions are interpreted for the given
+    Bundle states:</p><div class="table"><a name="bundle-factory-actions"></a><p class="title"><b>Table&nbsp;10.1.&nbsp;&lt;bundle&gt; <code class="literal">action</code> values</b></p><div class="table-contents"><table summary="<bundle&gt; action values" width="100%" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Action</th><th><code class="literal">UNINSTALLED</code></th><th><code class="literal">INSTALLED/RESOLVED</code></th><th><code class="literal">ACTIVE</code></th></tr></thead><tbody><tr><td><code class="literal">START</code></td><td>installs and starts the bundle</td><td>starts the bundle</td><td>no action taken, bundle already started</td></tr><tr><td><code class="literal">UPDATE</code></td><td>installs the bundle and then updates it (`Bundle.update()`)</td><td>updates the bundle</td><td>updates the bundle</td></tr><tr><td><code class="literal">STOP</code></td><td>no action taken</td><td>no action taken</td><td>bundle is stopped</td></tr><tr><td><code class="literal">UNINSTALL</code></td><td>no action taken</td><td>bundle is uninstalled</td><td>bundle is stopped and then uninstalled</td></tr></tbody></table></div></div><br class="table-break"><p>For example:</p><pre class="programlisting">&lt;<span class="hl-comment">!-- ensure this bundle is installed and started --</span>&gt;
+&lt;<span class="hl-tag">bundle</span> <span class="hl-attribute">id</span>=<span class="hl-value">"aBundle"</span> <span class="hl-attribute">symbolic-name</span>=<span class="hl-value">"org.xyz.abundle"</span>
+   <span class="hl-attribute">location</span>=<span class="hl-value">"http://www.xyz.com/bundles/org.xyz.abundle.jar"</span>
+   <span class="hl-attribute">action</span>=<span class="hl-value">"start"</span>/&gt;</pre><p>The following table lists the <code class="literal">bundle</code> element attributes names, 
+    possible values and a short description for each of them:
+    </p><div class="table"><a name="bundle-options"></a><p class="title"><b>Table&nbsp;10.2.&nbsp;&lt;bundle&gt; attributes</b></p><div class="table-contents"><table summary="<bundle&gt; attributes" width="100%" border="1"><colgroup><col><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="justify"></colgroup><thead><tr><th>Name</th><th colspan="5" align="justify">Values</th><th align="justify">Description</th></tr></thead><tbody><tr><td>symbolic-name</td><td colspan="5" align="justify">any valid symbolic-name String</td><td align="justify">The symbolic name of the bundle object. Normally used when interacting with an already 
+             installed bundle.</td></tr><tr><td>location</td><td colspan="5" align="justify">String that can be converted into an <code class="literal">URL</code></td><td align="justify">Location used to install, update or/and identify a bundle.</td></tr><tr><td>action</td><td align="center">start</td><td align="center">stop</td><td align="center">install</td><td align="center">uninstall</td><td align="center">update</td><td align="justify">Lifecyle action to drive on the bundle. The action is executed at startup.</td></tr><tr><td>destroy-action</td><td colspan="5" align="justify">(same as action)</td><td align="justify">Lifecyle action to drive on the bundle. The action is executed at shutdown.</td></tr></tbody></table></div></div><br class="table-break"><p>The samples that ship with the Gemini Blueprint project
+    include further support for a <code class="literal">virtual-bundle</code> element
+    that can be used to create and install OSGi bundles on the fly from
+    existing artifacts.</p></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="service-registry.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="compendium.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;9.&nbsp;The Service Registry&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;11.&nbsp;Compendium Services</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/compendium.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/compendium.html
new file mode 100644
index 0000000..bcc1dc5
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/compendium.html
@@ -0,0 +1,220 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;11.&nbsp;Compendium Services</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="reference.html" title="Part&nbsp;II.&nbsp;Reference Documentation"><link rel="prev" href="bundles.html" title="Chapter&nbsp;10.&nbsp;Working With Bundles"><link rel="next" href="testing.html" title="Chapter&nbsp;12.&nbsp;Testing OSGi based Applications"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="compendium"></a>Chapter&nbsp;11.&nbsp;Compendium Services</h2></div></div></div><p>The OSGi Service Platform Service Compendium specification defines a
+    number of additional services that may be supported by OSGi
+    implementations. Gemini Blueprint supports an additional
+    "compendium" namespace that provides integration with some of these services.
+    By convention, the prefix <code class="literal">osgix</code> is used for this
+    namespace:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8"?</span>&gt;
+&lt;<span class="hl-tag">beans:beans</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi"</span>
+   <span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+   <span class="hl-attribute">xmlns:</span><span class="co"><img src="images/callouts/1.png" alt="(1)"></span><span class="hl-attribute">osgix</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi-compendium"</span>                      <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+   <span class="hl-attribute">xmlns:beans</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>
+   <span class="hl-attribute">xsi:schemaLocation</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi  
+       	http://www.springframework.org/schema/osgi/spring-osgi.xsd
+     http://www.springframework.org/schema/osgi-compendium</span>                                    <span class="co"><img src="images/callouts/2.png" alt="(2)"></span><span class="hl-value">
+       	http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd</span>      <span class="co"><img src="images/callouts/3.png" alt="(3)"></span><span class="hl-value">
+     http://www.springframework.org/schema/beans   
+       	http://www.springframework.org/schema/beans/spring-beans.xsd"</span>&gt;
+
+   &lt;<span class="hl-comment">!-- use the OSGi namespace elements directly --</span>&gt;
+   &lt;<span class="hl-tag">service</span> <span class="hl-attribute">id</span>=<span class="hl-value">"simpleServiceOsgi"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"simpleService"</span>
+       <span class="hl-attribute">interface</span>=<span class="hl-value">"org.xyz.MyService"</span> /&gt;
+
+   &lt;<span class="hl-comment">!-- qualify compendium namespace elements --</span>&gt;
+   &lt;<span class="hl-tag">osgix:cm-properties</span> <span class="hl-attribute">id</span>=<span class="hl-value">"cm"</span> <span class="hl-attribute">persistent-id</span>=<span class="hl-value">"com.xyz.myapp"</span>/&gt;
+
+&lt;<span class="hl-tag">/beans:beans</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Compendium namespace declaration (bound to <code class="literal">osgix</code> prefix)</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Schema location (namespace URI)</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>XML schema to use for the compendium namespace</p></td></tr></table></div></div><p>At present this namespace provides support for the Configuration
+    Admin service. Support for other compendium services may be added in
+    future releases.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="compendium:cm"></a>11.1.&nbsp;Configuration Admin</h2></div></div></div><p>One of the most important compendium services, is the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org/javadoc/r4v401/org/osgi/service/cm/package-summary.html" target="_top">Configuration Admin</a>
+	  which, as a name implies, provides configuration to interested bundles through the OSGi service registry. Gemini Blueprint provides dedicated support
+	  for Configuration Admin (CM), allowing consumption and injection of the configuration data in a declarative way.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="compendium:cm:props"></a>11.1.1.&nbsp;Exposing Configuration Admin Entries As <code class="classname">Properties</code></h3></div></div></div><p>In its simplest form, the CM can be seen as a configuration source, namely a <code class="classname">Dictionary</code> whose
+        keys are always <code class="classname">String</code>s. Gemini Blueprint can expose entries in the CM as a <code class="classname">Properties</code> object,
+        through the <code class="literal">cm-properties</code> element. A minimal declaration looks as follows:</p><pre class="programlisting">&lt;<span class="hl-tag">osgix:cm-properties</span> <span class="hl-attribute">id</span>=<span class="hl-value">"ds.cfg"</span> <span class="hl-attribute">persistent-id</span>=<span class="hl-value">"data.source.office.1"</span>/&gt;</pre><p>The configuration above, exposes the properties available in the CM under <span class="emphasis"><em>data.source.office.1</em></span> entry as a bean named
+        <span class="emphasis"><em>ds.cfg</em></span>.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><p>The <code class="literal">persistent-id</code> attribute must refer to the
+        persistent-id of an OSGi <code class="interfacename">ManagedService</code>, it is a
+        configuration error to specify a factory persistent id referring to a
+        <code class="interfacename">ManagedServiceFactory</code>.</p></td></tr></table></div><p>Those familiar with Spring's 
+        <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/xsd-config.html#xsd-config-body-schemas-util" target="_top">util namespace</a> will
+        find <code class="literal">&lt;osgi:cm-properties/&gt;</code> element similar to <code class="literal">&lt;util:properties/&gt;</code>.</p><p>It is possible to specify a default set of property values to be used in the event that the configuration dictionary does not contain
+        an entry for a given key. The declaration is similar to the <code class="literal">props</code> element inside the Spring beans namespace:</p><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8"?</span>&gt;
+&lt;<span class="hl-tag">beans:beans</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi-compendium"</span>
+   <span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+   <span class="hl-attribute">xmlns:beans</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>
+   <span class="hl-attribute">xmlns:osgix</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi-compendium"</span>
+   <span class="hl-attribute">xsi:schemaLocation</span>=<span class="hl-value">"
+      http://www.springframework.org/schema/beans 
+        http://www.springframework.org/schema/beans/spring-beans.xsd
+      http://www.springframework.org/schema/osgi-compendium 
+        http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd"</span>&gt;
+
+   &lt;<span class="hl-tag">osgix:cm-properties</span> <span class="hl-attribute">id</span>=<span class="hl-value">"cfg.with.defaults"</span> <span class="hl-attribute">persistent-id</span>=<span class="hl-value">"data.source.office.2"</span>&gt;
+      &lt;<span class="hl-tag">beans:prop</span> <span class="hl-attribute">key</span>=<span class="hl-value">"host"</span>&gt;localhost&lt;<span class="hl-tag">/beans:prop</span>&gt;
+      &lt;<span class="hl-tag">beans:prop</span> <span class="hl-attribute">key</span>=<span class="hl-value">"port"</span>&gt;3306&lt;<span class="hl-tag">/beans:prop</span>&gt;
+   &lt;<span class="hl-tag">/osgix:cm-properties</span>&gt;
+
+&lt;<span class="hl-tag">/beans:beans</span>&gt;</pre><p>By default, the properties found in the Configuration Admin entry will override the local properties. Thus, for the previous example, if the 
+		<code class="literal">data.source.office.2</code> configuration contains a <span class="emphasis"><em>host</em></span> entry, its value will override the locally defined
+		<code class="literal">localhost</code>. For cases where this behaviour is undesired, the attribute <code class="literal">local-override</code> 
+		(default <code class="literal">false</code>) allows one to revert the merging algorithm, forcing the local properties to override the entries in the CM.</p><p>Since <code class="literal">cm-properties</code> exposes the CM entries as <code class="classname">Properties</code>, it can be used with Spring's <code class="classname">
+		<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-factory-placeholderconfigurer" target="_top">PropertyPlaceholderConfigurer</a></code> 
+		and <code class="classname"><a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-factory-overrideconfigurer" target="_top">PropertyOverrideConfigurer</a></code> 
+		to externalize and customize environment-specific properties:</p><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8"?</span>&gt;
+&lt;<span class="hl-tag">beans</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>
+   <span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+   <span class="hl-attribute">xmlns:osgix</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi-compendium"</span>
+   <span class="hl-attribute">xmlns:ctx</span>=<span class="hl-value">"http://www.springframework.org/schema/context"</span>
+   <span class="hl-attribute">xsi:schemaLocation</span>=<span class="hl-value">"
+	http://www.springframework.org/schema/beans 
+	  http://www.springframework.org/schema/beans/spring-beans.xsd
+	http://www.springframework.org/schema/context 
+	  http://www.springframework.org/schema/context/spring-context.xsd
+	http://www.springframework.org/schema/osgi-compendium 
+	  http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd"</span>&gt;
+
+   &lt;<span class="hl-comment">!-- Configuration Admin entry --</span>&gt;
+   &lt;<span class="hl-tag">osgix:cm-properties</span> <span class="hl-attribute">id</span>=<span class="hl-value">"cmProps"</span> <span class="hl-attribute">persistent-id</span>=<span class="hl-value">"com.xyz.myapp"</span>&gt;
+      &lt;<span class="hl-tag">prop</span> <span class="hl-attribute">key</span>=<span class="hl-value">"host"</span>&gt;localhost&lt;<span class="hl-tag">/prop</span>&gt;
+   &lt;<span class="hl-tag">/osgix:cm-properties</span>&gt;
+
+   &lt;<span class="hl-comment">!-- placeholder configurer --</span>&gt;
+   &lt;<span class="hl-tag">ctx:property-placeholder</span> <span class="hl-attribute">properties-ref</span>=<span class="hl-value">"cmProps"</span> /&gt;
+
+   &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"dataSource"</span> <span class="hl-attribute">...&gt;</span>
+      <span class="hl-attribute">&lt;property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"host"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"${host}"</span>/&gt;
+      &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"timeout"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"${timeout}"</span>/&gt;
+   &lt;<span class="hl-tag">/bean</span>&gt;
+	
+&lt;<span class="hl-tag">/beans</span>&gt;</pre><p>An important aspect of <code class="literal">cm-properties</code> is does <span class="emphasis"><em>not</em></span> reflect
+        any that any subsequent changes made to the entry it represents, made through the Configuration Admin API.
+        That is, once resolved, the <code class="literal">cm-properties</code> content remains the same, regardless of any updates
+        made the to CM entry it represents.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="compendium:cm:managed-properties"></a>11.1.2.&nbsp;Managed Properties</h3></div></div></div><p>Based on a configuration admin entry, Gemini Blueprint can autowire by name, the properties of a given bean. To use this feature, define
+	  	a nested <code class="literal">managed-properties</code> inside the bean definition:</p><pre class="programlisting">&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"managedComponent"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"MessageTank"</span>&gt;
+   &lt;<span class="hl-tag">osgix:managed-properties</span> <span class="hl-attribute">persistent-id</span>=<span class="hl-value">"com.xyz.messageservice"</span>/&gt; 
+&lt;<span class="hl-tag">/bean</span>&gt;</pre><p>For each key in the dictionary stored by Configuration Admin under the given persistent id, 
+		if the bean type has a property with a matching name (following JavaBeans conventions), 
+		then that component property will be dependency injected with the value stored in Configuration Admin under the key. 
+		If the definition of <code class="classname">SomeClass</code> from the example above is as follows:</p><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">class</span> MessageTank {
+  <span class="hl-keyword">private</span> <span class="hl-keyword">int</span> amount;
+  <span class="hl-keyword">public</span> <span class="hl-keyword">int</span> getAmount() { <span class="hl-keyword">return</span> <span class="hl-keyword">this</span>.amount; }
+  <span class="hl-keyword">public</span> <span class="hl-keyword">void</span> setAmount(<span class="hl-keyword">int</span> amount) { <span class="hl-keyword">this</span>.amount = amount; }
+}</pre><p>and the configuration dictionary stored under the pid <code class="literal">com.xyz.messageservice</code> contains an entry 
+		<code class="literal">amount=200</code>, then the <code class="literal">setAmount</code> method will be invoked on the bean 
+		instance during configuration, passing in the value <code class="literal">200</code>.</p><p>If a property value is defined both in the configuration dictionary stored in the Configuration Admin service and in a 
+		property element declaration nested in the component element, then the value from Configuration Admin takes precedence:</p><pre class="programlisting">&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"managedComponent"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"MessageTank"</span>&gt;
+   &lt;<span class="hl-tag">osgix:managed-properties</span> <span class="hl-attribute">persistent-id</span>=<span class="hl-value">"com.xyz.messageservice"</span>/&gt;
+   &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"amount"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"100"</span>/&gt;
+   &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"threshold"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"500"</span>/&gt; 
+&lt;<span class="hl-tag">/bean</span>&gt;</pre><p>Property values specified via property elements can therefore be treated as default values to be used if none is available through 
+		Configuration Admin.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/admons/warning.png"></td><th align="left">Warning</th></tr><tr><td align="left" valign="top">Do not share the same <span class="emphasis"><em>persistent-id</em></span> (PID) between multiple bundles or definitions, as <span class="emphasis"><em>only one</em></span>
+		of them will receive notifications. <code class="literal">managed-properties</code> relies on <code class="literal">org.osgi.service.cm.ManagedService</code>
+		contract which mandates that each <code class="literal">ManagedService</code> instance must be identified with its own unique PID.
+		Please see the Configuration Admin spec, specifically section 104.3 and 104.5</td></tr></table></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="compendium:cm:managed-properties:update"></a>11.1.2.1.&nbsp;Configuration Admin Runtime Updates</h4></div></div></div><p>A powerful feature of Configuration Admin is the ability to update (or delete) entries at runtime. That is, the configuration data 
+			stored in Configuration Admin may be updated after the bean has been created. By default, any post-creation updates will be ignored. However,
+			one can configure <code class="literal">managed-properties</code> element to receive configuration updates through the <code class="literal">update-strategy</code>
+			attribute, which can have a value of either <code class="literal">bean-managed</code> or <code class="literal">container-managed</code>.</p><p><code class="literal">bean-managed</code> strategy will pass all the updates made to the configuration to a callback present on the bean, specified
+			through the <code class="literal">update-method</code> attribute (which becomes required). The update method must have one of the following signatures:</p><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">void</span> anyMethodName(Map properties)
+<span class="hl-keyword">public</span> <span class="hl-keyword">void</span> anyMethodName(Map&lt;String,?&gt; properties); <span class="hl-comment">// for Java 5</span></pre><p>In contrast, the <code class="literal">container-managed</code> update strategy will re-inject bean properties by name based on the new properties 
+		    received in the update. For <code class="literal">container-managed</code> updates, the component class must provide setter methods for the component properties 
+		    that it wishes to have updated. Consider the following class definitions:</p><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">class</span> ContainerManagedBean {
+  <span class="hl-comment">// will be reinjected (since it has a setter)</span>
+  <span class="hl-keyword">private</span> Integer integer;
+  <span class="hl-comment">// will not be reinjected (no setter present)</span>
+  <span class="hl-keyword">private</span> Long waitTime; 
+  
+  <span class="hl-keyword">public</span> <span class="hl-keyword">void</span> setInteger(Integer integer) { <span class="hl-keyword">this</span>.integer = integer; }
+}
+
+
+<span class="hl-keyword">public</span> <span class="hl-keyword">class</span> SelfManagedBean {
+  
+  <span class="hl-comment">// update callback</span>
+  <span class="hl-keyword">public</span> <span class="hl-keyword">void</span> updateCallback(Map properties) {
+	System.out.println(<span class="hl-string">"Received properties "</span> + properties);
+	System.out.println(<span class="hl-string">"Props can be used as a Dictionary "</span> + (Dictionary) properties);
+	<span class="hl-comment">// do more work ... </span>
+  }
+}</pre><p>and configuraton:</p><pre class="programlisting">&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"containerManaged"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"ContainerManagedBean"</span>&gt;
+   &lt;<span class="hl-tag">osgix:managed-properties</span> <span class="hl-attribute">persistent-id</span>=<span class="hl-value">"labX"</span> <span class="hl-attribute">update-strategy</span>=<span class="hl-value">"container-managed"</span>/&gt;
+   &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"integer"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"23"</span>/&gt;
+&lt;<span class="hl-tag">/bean</span>&gt;
+	
+&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"beanManaged"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"SelfManagedBean"</span>&gt;
+   &lt;<span class="hl-tag">osgix:managed-properties</span> <span class="hl-attribute">persistent-id</span>=<span class="hl-value">"labY"</span> <span class="hl-attribute">update-strategy</span>=<span class="hl-value">"bean-managed"</span> <span class="hl-attribute">update-method</span>=<span class="hl-value">"updateCallback"</span>/&gt;
+&lt;<span class="hl-tag">/bean</span>&gt;</pre><p>Any updates made to the CM entry <code class="literal">labX</code> will be automatically reinjected on existing instances of 
+		    <code class="literal">containerManaged</code> bean while the <code class="literal">labY</code> updates will be passed to <code class="methodname">updateCallback</code>
+		    method.</p><p>The update options are summarized in the table below:</p><div class="table"><a name="compendium-cm-managed-properties-options"></a><p class="title"><b>Table&nbsp;11.1.&nbsp;Managed Properties Update Options</b></p><div class="table-contents"><table summary="Managed Properties Update Options" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th><code class="literal">update-strategy</code></th><th><code class="literal">update-method</code></th><th>Behaviour</th></tr></thead><tbody><tr><td><code class="literal">container-managed</code></td><td><span class="emphasis"><em>ignored</em></span></td><td>Reinjects the bean properties, using the properties present in the update. The re-injection will be applied while locking (through
+	              	  a <code class="literal">synchronized</code> instruction) the bean instance. If the locking or re-injection strategy is not suitable, consider using
+	              	  the <code class="literal">bean-managed</code> approach.</td></tr><tr><td><code class="literal">bean-managed</code></td><td><span class="emphasis"><em>required</em></span></td><td>Invokes the <code class="literal">update-method</code> callback on the bean instance, passing the updated configuration (as a 
+	              	  <code class="interfacename">Map</code> object that can be safely cast to a <code class="classname">Dictionary</code> if needed). No locking is
+	              	  performed.</td></tr></tbody></table></div></div><br class="table-break"></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="compendium:cm:managed-service-factories"></a>11.1.3.&nbsp;Managed Service Factories</h3></div></div></div><p>The Configuration Admin service supports a notion of a <span class="emphasis"><em>managed service factory</em></span>(see section 104.6 in the Compendium Specification). 
+	  	A managed service factory is identified by a factory pid which allows <span class="emphasis"><em>multiple</em></span> <code class="interfacename">Configuration</code> objects 
+	  	to be associated with the factory. <code class="interfacename">Configuration</code> objects associated with the factory can be added or removed at any point.
+	  	The main intent of a factory is to create an OSGi service for each configuration: adding a new <code class="interfacename">Configuration</code> entry results
+	  	in a new OSGi service being registered, removing a <code class="interfacename">Configuration</code>, unregisters the service.
+		Gemini Blueprint provides support for the <span class="emphasis"><em>managed service factory</em></span> concept through the <code class="literal">managed-service-factory</code> element. Once
+		defined, the configuration associated with the factory pid will automatically create (or remove) bean instances which will be registered (or unregistered)
+		in the OSGi space based on a <span class="emphasis"><em>template</em></span> bean definition and the CM configuration.</p><p>This might sound more complicated then it actually is, so let's look at a simplistic example:</p><div class="programlistingco"><pre class="programlisting">&lt;osgix:managed-service-factory id=<span class="hl-string">"simple-msf"</span> 
+   factory-pid=<span class="hl-string">"com.xyz.messageservice"</span>                                                            <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+   auto-export=<span class="hl-string">"all-classes"</span>&gt;                                                                      <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+	
+   &lt;bean <span class="hl-keyword">class</span>=<span class="hl-string">"com.xyz.MessageTank"</span>/&gt;                                                             <span class="co"><img src="images/callouts/3.png" alt="(3)"></span>
+&lt;/osgix:managed-service-factory&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>factory persistent id (pid)</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Shortcut flag used to determine under what interfaces the OSGi service is published (more info below)</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>bean definition <span class="emphasis"><em>template</em></span>. For each detected configuration, a new service will be created using
+					the bean definition template.</p></td></tr></table></div></div><p>In its simplest form, the <code class="literal">managed-service-factory</code> requires the <span class="emphasis"><em>factory pid</em></span>, a <span class="emphasis"><em>bean definition</em></span>
+		used as a template and some information on how possible bean instances are published as services. Basically, the definition above instructs 
+		Gemini Blueprint to monitor the given factory pid (through a dedicated <code class="interfacename">ManagedServiceFactory</code> implementation (see the Compendium Spec for 
+		more info)) and for every <code class="interfacename">Configuration</code> object associated with the factory pid, to create a new, anonymous instance of 
+		the nested bean declared and export that instance as an OSGi service. The lifecycle of these beans instances is tied to the lifecycle of the 
+		associated <code class="interfacename">Configuration</code> objects. If a new configuration is added, a new bean is created and exported.
+		If a configuration object is deleted or disassociated from the factory pid then the corresponding bean instance is destroyed.</p><p>In many regards, <code class="literal">managed-service-factory</code> acts as a specialized service exporter, similar to the 
+		<a href="service-registry.html#service-registry:export" title="9.1.&nbsp;Exporting A Spring Bean As An OSGi Service"><code class="literal">service</code></a> element but supporting the concept of 
+		<a href="compendium.html#compendium:cm:managed-properties" title="11.1.2.&nbsp;Managed Properties">managed properties</a>. In fact, many of
+		<code class="literal">service</code>'s attributes that indicate how a bean is exported, are found in <code class="literal">managed-service-factory</code> (as you saw in the
+		previous example with <code class="literal">auto-export</code>) as are the <code class="literal">managed-properties</code> attributes.</p><p>The list of attributes can be found below:</p><div class="table"><a name="compendium-cm-msf-options"></a><p class="title"><b>Table&nbsp;11.2.&nbsp;Managed Service Factory Options</b></p><div class="table-contents"><table summary="Managed Service Factory Options" width="100%" border="1"><colgroup><col><col><col><col><col><col></colgroup><thead><tr><th align="center">Name</th><th colspan="4" align="center">Values</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">interface</td><td colspan="4" align="center">fully qualified class name (such as <code class="classname">java.lang.Thread</code>)</td><td align="center">the fully qualified name of the class under which the object will be exported</td></tr><tr><td align="center">context-class-loader</td><td colspan="2" align="center">unmanaged</td><td colspan="2" align="center">service-provider</td><td align="center">Defines how the context class loader will be managed when an operation is invoked on the 
+                  exported service. The default value is <code class="literal">unmanaged</code> which means that no management of 
+                  the context class loader is attempted. A value of <code class="literal">service-provider</code> guarantees that
+                  the context class loader will have visibility of all the resources on the class path of 
+                  bundle exporting the service.</td></tr><tr><td align="center">auto-export</td><td align="center">disabled <code class="literal">(default)</code></td><td align="center">interfaces</td><td align="center">class-hierarchy</td><td align="center">all-classes</td><td align="center">Enables Spring to automatically manage the set of service interfaces advertised for the
+				  service. By default this facility is <code class="literal">disabled</code>. A value of <code class="literal">interfaces</code> advertises all 
+                  of the Java interfaces supported by the exported service. A value of <code class="literal">class-hierarchy</code> 
+                  advertises all the Java classes in the hierarchy of the exported service. A value of 
+                  <code class="literal">all-classes</code> advertises all Java interfaces and classes.</td></tr><tr><td align="center">update-strategy</td><td align="center">none <code class="literal">(default)</code></td><td align="center">bean-managed</td><td colspan="2" align="center">container-managed</td><td align="center">Defines the update strategy for configuration modifications made after the associated beans have been created.</td></tr></tbody></table></div></div><br class="table-break"><p>Similar to the <code class="literal">service</code> element, a list of interfaces or/and registration listeners can be declared to be notified when a 
+		service is being registered/unregistered. For more information on the semantics, please see <a href="service-registry.html#service-registry:export:intfs" title="9.1.3.&nbsp;Controlling The Set Of Advertised Service Interfaces For An Exported Service">Section&nbsp;9.1.3, &#8220;Controlling The Set Of Advertised Service Interfaces For
+        An Exported Service&#8221;</a> and 
+		<a href="service-registry.html#service-registry:export:lifecycle" title="9.1.10.&nbsp;Service Registration And Unregistration Lifecycle">Section&nbsp;9.1.10, &#8220;Service Registration And Unregistration Lifecycle&#8221;</a> chapters.</p><p>Now that the <code class="literal">managed-service-factory</code> options have been explained, let's look at a more complex configuration:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"queueTracker"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"org.xyz.queue.QueueTracker"</span>/&gt;
+			
+&lt;<span class="hl-tag">osgix:managed-service-factory</span> <span class="hl-attribute">id</span>=<span class="hl-value">"data-msf"</span> 
+   <span class="hl-attribute">factory-pid</span>=<span class="hl-value">"org.xyz.labX"</span>                                                                      <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+   <span class="hl-attribute">update-strategy</span>=<span class="hl-value">"bean-managed"</span>                                                                  <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+   <span class="hl-attribute">update-method</span>=<span class="hl-value">"refresh"</span>&gt;                                                                        <span class="co"><img src="images/callouts/3.png" alt="(3)"></span>
+   &lt;<span class="hl-tag">osgix:interfaces</span>&gt;
+       &lt;<span class="hl-tag">value</span>&gt;java.util.Collection&lt;<span class="hl-tag">/value</span>&gt;                                                         <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+       &lt;<span class="hl-tag">value</span>&gt;java.util.Queue&lt;<span class="hl-tag">/value</span>&gt;                                                              <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+   &lt;<span class="hl-tag">/osgix:interfaces</span>&gt;
+   &lt;<span class="hl-tag">osgix:registration-listener</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"queueTracker"</span>                                                 <span class="co"><img src="images/callouts/5.png" alt="(5)"></span>
+       <span class="hl-attribute">registration-method</span>=<span class="hl-value">"track"</span>                                                                 <span class="co"><img src="images/callouts/6.png" alt="(6)"></span>
+       <span class="hl-attribute">unregistration-method</span>=<span class="hl-value">"untrack"</span>/&gt;                                                           <span class="co"><img src="images/callouts/7.png" alt="(7)"></span>
+		
+   &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">class</span>=<span class="hl-value">"com.xyz.ResizableQueue"</span>&gt;                                                           <span class="co"><img src="images/callouts/8.png" alt="(8)"></span>
+       &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"size"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"100"</span>/&gt;
+       &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"concurrency"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"10"</span>/&gt;
+       &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"fair"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"false"</span>/&gt;
+   &lt;<span class="hl-tag">/bean</span>&gt;
+&lt;<span class="hl-tag">/osgix:managed-service-factory</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p><code class="interfacename">ManagedServiceFactory</code> factory persistent id</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>how should Gemini Blueprint behave when a <code class="interfacename">Configuration</code> is updated</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>the method to invoke when for <code class="literal">bean-managed</code> updates</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>the interfaces under which the nested beans are published as OSGi services</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/5.png" alt="5" border="0"></td><td valign="top" align="left"><p>listener notified when a service (based on the CM <code class="interfacename">Configuration</code>) is registered/unregistered</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/6.png" alt="6" border="0"></td><td valign="top" align="left"><p>custom (optional) service registration method</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/7.png" alt="7" border="0"></td><td valign="top" align="left"><p>custom (optional) service unregistration method</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/8.png" alt="8" border="0"></td><td valign="top" align="left"><p>bean definition template</p></td></tr></table></div></div><p>The example above, creates a imaginary <code class="classname">ResizeableQueue</code> instance for each <code class="interfacename">Configuration</code> entry
+		present under the <code class="literal">org.xyz.labX</code> factory pid. Each instance has default values assigned to <code class="literal">size</code>, <code class="literal">concurrency</code>
+		and <code class="literal">fair</code> parameters. However, just like <code class="literal">managed-properties</code>, during the bean creation, the values received from the 
+		Configuration Admin will be injected by name, possibly overriding existing settings. Once created and configured, each nested, anonymous bean instance
+		is registered as an OSGi service under the <code class="interfacename">java.util.Collection</code> and <code class="interfacename">java.util.Queue</code> 
+		interfaces. The OSGi service lifecycle is monitored by a registration listener, namely the bean <code class="literal">queueTracker</code>.
+		Finally, due to the specified <code class="literal">update-strategy</code>, any updates executed to each CM configuration will cause the 
+		<code class="methodname">refresh</code> callback to be invoked on the associated bean instance.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="compendium:cm:dict"></a>11.1.4.&nbsp;Direct Access To Configuration Data</h3></div></div></div><p>The simplest way to work directly with the configuration data stored under a given persistent id or factory persistent id, 
+        is to register a service that implements either the <code class="interfacename">ManagedService</code> or <code class="interfacename">ManagedServiceFactory</code>
+        interface and specify the pid that you are interested in as a service property (for more information, see the Configuration Admin chapter
+        in the OSGi compendium spec). For example:</p><pre class="programlisting">&lt;<span class="hl-tag">osgi:service</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"org.osgi.service.cm.ManagedService"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"myManagedService"</span>&gt;
+   &lt;<span class="hl-tag">osgi:service-properties</span>&gt;
+     &lt;<span class="hl-tag">entry</span> <span class="hl-attribute">key</span>=<span class="hl-value">"service.pid"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"my.managed.service.pid"</span>/&gt;
+   &lt;<span class="hl-tag">/osgi:service-properties</span>&gt;
+&lt;<span class="hl-tag">/osgi:service</span>&gt;
+
+&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"myManagedService"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"com.xyz.MyManagedService"</span>/&gt;</pre></div></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="bundles.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="testing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;10.&nbsp;Working With Bundles&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;12.&nbsp;Testing OSGi based Applications</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/css/highlight.css b/blueprint/documentation/reference/1.0.1.RELEASE/html/css/highlight.css
new file mode 100644
index 0000000..525efc4
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/css/highlight.css
@@ -0,0 +1,35 @@
+/* 

+   code highlight CSS resemblign the Eclipse IDE default color schema

+   @author Costin Leau

+*/

+
+.hl-keyword {
+  color: #7F0055;

+  font-weight: bold; 
+}

+

+.hl-comment {

+  color: #3F5F5F;

+  font-style: italic;

+}

+
+.hl-multiline-comment {

+  color: #3F5FBF;

+  font-style: italic;

+}

+

+.hl-tag {

+  color: #3F7F7F;

+}

+

+.hl-attribute {

+  color: #7F007F;

+}

+

+.hl-value {

+  color: #2A00FF;

+}

+

+.hl-string {

+  color: #2A00FF;

+}
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/css/html.css b/blueprint/documentation/reference/1.0.1.RELEASE/html/css/html.css
new file mode 100644
index 0000000..12968a2
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/css/html.css
@@ -0,0 +1,305 @@
+@IMPORT url("highlight.css");

+

+body {
+   text-align: justify;
+   margin-right: 2em;
+   margin-left: 2em;
+}
+
+a,
+a[accesskey^="h"],
+a[accesskey^="n"],
+a[accesskey^="u"],
+a[accesskey^="p"] {
+    font-family: Verdana, Arial, helvetica, sans-serif;
+    font-size: 12px;
+	color: #003399;
+}
+
+a:active {
+    color: #003399;
+}
+
+a:visited {
+    color: #888888;
+}
+
+p {
+	font-family: Verdana, Arial, sans-serif;
+}
+
+dt {
+	font-family: Verdana, Arial, sans-serif;
+	font-size: 12px;
+}
+
+p, dl, dt, dd, blockquote {
+    color: #000000;
+    margin-bottom: 3px;
+    margin-top: 3px;
+    padding-top: 0;
+}
+
+ol, ul, p {
+    margin-top: 6px;
+    margin-bottom: 6px;
+}
+
+p, blockquote {
+    font-size: 90%;
+}
+
+p.releaseinfo {
+    font-size: 100%;
+    font-weight: bold;
+    font-family: Verdana, Arial, helvetica, sans-serif;
+    padding-top: 10px;
+}
+
+p.pubdate {
+    font-size: 120%;
+    font-weight: bold; 
+    font-family: Verdana, Arial, helvetica, sans-serif;
+}
+
+td {
+    font-size: 80%;
+}
+
+td, th, span {
+    color: #000000;
+}
+
+td[width^="40%"] {
+    font-family: Verdana, Arial, helvetica, sans-serif;
+    font-size: 12px;
+	color: #003399;
+}
+
+table[summary^="Navigation header"] tbody tr th[colspan^="3"] {
+    font-family: Verdana, Arial, helvetica, sans-serif;
+}
+
+blockquote {
+    margin-right: 0;
+}
+
+h1, h2, h3, h4, h6 {
+    color: #000000;
+    font-weight: 500;
+    margin-top: 0;
+    padding-top: 14px;
+    font-family: Verdana, Arial, helvetica, sans-serif;
+    margin-bottom: 0;
+}
+
+h2.title {
+    font-weight: 800;
+    margin-bottom: 8px;
+}
+
+h2.subtitle {
+    font-weight: 800;
+    margin-bottom: 20px;
+}
+
+.firstname, .surname {
+	font-size: 12px;
+    font-family: Verdana, Arial, helvetica, sans-serif;
+}
+
+table {
+    border-collapse: collapse;
+    border-spacing: 0;
+    border: 1px black;
+    empty-cells: hide;
+    margin: 10px 0 30px 50px;
+    width: 90%;
+}
+
+div.table {
+	margin: 30px 0 10px 0;
+	border: 1px dashed gray;
+	padding: 10px;
+}
+
+div .table-contents table {
+	border: 1px solid black;
+}
+
+div.table > p.title {
+	padding-left: 10px;
+}
+
+table[summary^="Navigation footer"] {
+    border-collapse: collapse;
+    border-spacing: 0;
+    border: 1px black;
+    empty-cells: hide;    
+    margin: 0px;
+    width: 100%;
+}
+
+table[summary^="Note"],
+table[summary^="Warning"],
+table[summary^="Tip"] {
+    border-collapse: collapse;
+    border-spacing: 0;
+    border: 1px black;
+    empty-cells: hide;    
+    margin: 10px 0px 10px -20px;
+    width: 100%;
+}
+
+td {
+    padding: 4pt;
+    font-family: Verdana, Arial, helvetica, sans-serif;
+}
+
+div.warning TD {
+	text-align: justify;
+}
+
+h1 { 
+    font-size: 150%; 
+}
+
+h2 { 
+    font-size: 110%; 
+}
+
+h3 {
+    font-size: 100%; font-weight: bold; 
+}
+
+h4 { 
+    font-size: 90%; font-weight: bold;
+}
+
+h5 {
+    font-size: 90%; font-style: italic; 
+}
+
+h6 { 
+    font-size: 100%; font-style: italic; 
+}
+
+tt {
+    font-size: 110%;
+    font-family: "Courier New", Courier, monospace;
+    color: #000000;
+}
+
+.navheader, .navfooter {
+	border: none;
+}
+
+div.navfooter table {
+	border-style: dashed;
+	border-color: gray;
+	border-width: 1px 1px 1px 1px;
+	background-color: #cde48d;
+}
+
+pre {
+    font-size: 110%;
+    padding: 5px;
+    border-style: solid;
+    border-width: 1px;
+    border-color: #CCCCCC;
+    background-color: #f3f5e9;
+}
+
+ul, ol, li {
+    list-style: disc;
+}
+
+hr {
+    width: 100%;
+    height: 1px;
+    background-color: #CCCCCC;
+    border-width: 0;
+    padding: 0;
+}
+
+.variablelist { 
+    padding-top: 10px; 
+    padding-bottom: 10px; 
+    margin: 0;
+}
+
+.term { 
+    font-weight:bold;
+}
+
+.mediaobject {
+    padding-top: 30px; 
+    padding-bottom: 30px; 
+}
+
+.legalnotice {
+    font-family: Verdana, Arial, helvetica, sans-serif;
+    font-size: 12px;
+    font-style: italic;
+}
+
+.sidebar {
+    float: right;
+    margin: 10px 0 10px 30px;
+    padding: 10px 20px 20px 20px;
+    width: 33%;
+    border: 1px solid black;
+    background-color: #F4F4F4;
+    font-size: 14px;
+}
+
+.property {
+	font-family: "Courier New", Courier, monospace;
+}
+
+a code {
+	font-family: Verdana, Arial, monospace;
+	font-size: 12px;
+}
+
+td code {
+    font-size: 110%;
+}
+
+div.note * td,
+div.tip * td,
+div.warning * td,
+div.calloutlist * td {
+	text-align: justify;
+	font-size: 100%;
+}
+

+.programlisting {

+   clear: both;

+}

+
+.programlisting .interfacename,
+.programlisting .literal,
+.programlisting .classname {
+    font-size: 95%;
+}
+
+.title .interfacename,
+.title .literal,
+.title .classname {
+    font-size: 130%;
+}
+
+/* everything in a <lineannotation/> is displayed in a coloured, comment-like font */
+.programlisting * .lineannotation,
+.programlisting * .lineannotation * {
+	color: green;
+}
+
+.question * p {
+    font-size: 100%;
+}
+
+.answer * p {
+    font-size: 100%;
+}
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/eclipse-migration.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/eclipse-migration.html
new file mode 100644
index 0000000..f8222da
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/eclipse-migration.html
@@ -0,0 +1,15 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;1.&nbsp;Spring Dynamic Modules becomes Eclipse Gemini Blueprint</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="introduction.html" title="Part&nbsp;I.&nbsp;Introduction"><link rel="prev" href="introduction.html" title="Part&nbsp;I.&nbsp;Introduction"><link rel="next" href="why-Spring DM.html" title="Chapter&nbsp;2.&nbsp;Why Gemini Blueprint?"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="eclipse-migration"></a>Chapter&nbsp;1.&nbsp;Spring Dynamic Modules becomes Eclipse Gemini Blueprint</h2></div></div></div><p>
+      In late 2009, as a member of the Gemini project <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://eclipse.org/proposals/gemini/" target="_top">proposal</a>, 
+      SpringSource <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://blog.springsource.com/2009/11/24/gemini-project-proposal-at-eclipse-org/" target="_top">contributed</a> Spring Dynamic Modules 
+      (also known as Spring OSGi) <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springframework.org/osgi" target="_top">project</a>
+      to the Eclipse Foundation. Spring DM v2 code base has been moved to Eclipse.org along with its issue tracker and forum. The project
+      became dual licensed under Apache License and EPL.
+      </p><p>
+      While the name has changed, the code and its functionality remained the same. Existing Spring DM applications can be easily migrated to Eclipse Gemini Blueprint
+      as mentioned in the migration <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/gemini/blueprint/documentation/migration/" target="_top">guide</a>.
+      </p><p>While the project name has changed (to Eclipse Gemini Blueprint) and significant efforts have been made to reflect this in the project documentation and resources,
+      there might be places that we have missed; if you find any, please <a xmlns:xlink="http://www.w3.org/1999/xlink" href="https://bugs.eclipse.org/bugs/buglist.cgi?product=Gemini.Blueprint" target="_top">report</a> them to us.
+      </p></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="introduction.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="why-Spring DM.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part&nbsp;I.&nbsp;Introduction&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;2.&nbsp;Why Gemini Blueprint?</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/faq.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/faq.html
new file mode 100644
index 0000000..a5fe0cf
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/faq.html
@@ -0,0 +1,14 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Eclipse Gemini Blueprint</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="faq.html" title="Eclipse Gemini Blueprint"><link rel="next" href="spring-osgi-faq.html" title="Chapter&nbsp;1.&nbsp;Frequently Asked Questions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d889e1"></a>Eclipse Gemini Blueprint</h1></div><div><h2 class="subtitle">Frequently Asked Questions</h2></div><div><div xmlns:fo="http://www.w3.org/1999/XSL/Format" class="authorgroup"><h2>Authors</h2><p></p><span class="author"><span class="firstname">Costin</span> <span class="surname">Leau</span> 
+            (SpringSource)
+            </span></div></div><div><p class="releaseinfo"></p></div><div><p class="copyright">Copyright &copy; 2006 -, 2011 VMware Inc., Oracle Inc.</p></div><div><div class="legalnotice"><a name="d889e16"></a><p>Documentation made available under the terms of the Eclipse Public License v1.0 
+      and Apache License v2.0 which accompanies this distribution. 
+      The Eclipse Public License is available at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/legal/epl-v10.html" target="_top">http://www.eclipse.org/legal/epl-v10.html</a> and 
+      the Apache License v2.0 is available at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.opensource.org/licenses/apache2.0.php" target="_top">http://www.opensource.org/licenses/apache2.0.php</a>.
+      You may elect to redistribute this code under either of these licenses.</p></div></div></div><hr></div><div class="toc"><dl><dt><span class="chapter"><a href="spring-osgi-faq.html">1. Frequently Asked Questions</a></span></dt><dd><dl><dt><span class="section"><a href="spring-osgi-faq.html#eclipse-springdm">1.1. What's the relationship between Spring Dynamic Modules and Gemini Blueprint?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#name-change">1.2. What happened to "Spring OSGi" project name?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#internal-package">1.3. Why aren't there any javadocs on <code class="literal">*.internal.*</code>?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#requirements">1.4. What are Gemini Blueprint requirements?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#other-module-frameworks">1.5. Are there plans to support other dynamic module frameworks (such as the JSR 277 extensions in Java 7)?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#restricted-environments">1.6. Will Gemini Blueprint work in restricted environments (such as small/mobile devices)?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#supported-osgi-platforms">1.7. What OSGi platforms are supported?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#osgi-intro">1.8. Where can I learn about OSGi?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#building-the-sources">1.9. I have problems building the sources. What can I do?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#logging">1.10. How can I use logging in OSGi?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#commons-logging">1.11. If you use the commons-logging API, why rely on SLF4J and
+        not the commons-logging jar?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#getting-commons-logging-to-work">1.12. I have to use commons-logging, what can I do?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#logging-impl-choice">1.13. Why don't you use the OSGi logging service/[insert your favourite
+        logging library in here]?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#osgi-wrapping">1.14. I have to use [insert name] library/framework inside. What can I do?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#jdk-crippled-jta-api">1.15. I keep getting <span class="emphasis"><em>java.lang.NoClassDefFoundError: javax/transaction/...</em></span> when trying to do data access..</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#incomplete-osgi-jar">1.16. When doing integration testing I receive <span class="emphasis"><em>java.lang.NoClassDefFoundError: org.osgi.vendor.framework property not set</em></span>... </a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#auto-export-visibility">1.17. The autoExport option doesn't work properly!</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#junit382-serialization">1.18. When using Gemini Blueprint integration testing I get an exception about serialVersionUID. What is the problem?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#pde-errors">1.19. I'm using Eclipse PDE and I started getting some weird exceptions/behaviour. What's the matter?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#upgrade-to-1.1">1.20. I'm upgrading to Spring DM 1.1 but now I get some ClassNotFoundExceptions. What has changed?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#proxy-equality">1.21. I've noticed that objects imported by Gemini Blueprint are not always equal to the raw target service. Why is that?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#static-collections">1.22. My Gemini Blueprint collection doesn't change even though the number of OSGi service changes. What's wrong?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#update-to-1.2">1.23. I have upgraded to Gemini Blueprint but my custom extender/web extender configuration doesn't work anymore. What has changed?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#linkage-error">1.24. I get a <code class="literal">java.lang.LinkageError: loader constraint violation</code> if I use Gemini Blueprint. Things work fine with vanilla OSGi. 
+     	What's wrong?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#blueprint">1.25. What can I use Gemini Blueprint with the Blueprint Container spec? What's the relationship between the two? Are the they compatible?
+     	Are there any differences?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#kf-2.3-boot-delegation">1.26. I'm using Knopflerfish 2.3.x and I have a lot of visibility exception. How can I fix this?</a></span></dt><dt><span class="section"><a href="spring-osgi-faq.html#pde-cycles">1.27. I'm using Gemini Blueprint and Spring jars inside Eclipse PDE but I get an error about cycle dependency errors. What's wrong?</a></span></dt></dl></dd></dl></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">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="spring-osgi-faq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&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;1.&nbsp;Frequently Asked Questions</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/get-started.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/get-started.html
new file mode 100644
index 0000000..c0c0703
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/get-started.html
@@ -0,0 +1,37 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;4.&nbsp;Getting Started</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="introduction.html" title="Part&nbsp;I.&nbsp;Introduction"><link rel="prev" href="requirements.html" title="Chapter&nbsp;3.&nbsp;Requirements"><link rel="next" href="what-is-new.html" title="Chapter&nbsp;5.&nbsp;What is new?"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="get-started"></a>Chapter&nbsp;4.&nbsp;Getting Started</h2></div></div></div><p>Learning a new framework is not always straight forward. In this section, we (the Spring DM/Gemini Blueprint team) 
+    tried to provide, what we think is, an easy to follow guide for starting with Gemini Blueprint. 
+    Of course, feel free to create your own learning 'path' as you see fit and, if possible, please report back
+    any improvements to the documentation that can help others.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="get-started:first-steps"></a>4.1.&nbsp;First Steps</h2></div></div></div><p>As explained in <a href="why-Spring DM.html" title="Chapter&nbsp;2.&nbsp;Why Gemini Blueprint?">Chapter&nbsp;2, <i xmlns:xlink="http://www.w3.org/1999/xlink">Why Gemini Blueprint?</i></a>, Gemini Blueprint provides integration between
+		Spring framework and OSGi. Thus, it is important to become acquainted with both of these frameworks (libraries or
+		environments depending on how you want to name them). Throughout the Gemini Blueprint documentation, each section provides
+		links to resources relevant however, it is best to become familiar with these topics beforehand.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="get-started:first-steps:spring"></a>4.1.1.&nbsp;Knowing Spring</h3></div></div></div><p>Gemini Blueprint uses heavily Spring framework's <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/spring-core.html" target="_top">core</a> functionalty, 
+			such as the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/beans.html" target="_top">IoC</a> container,
+			<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/resources.html" target="_top">resource</a> abstract or
+			<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/aop.html" target="_top">AOP</a> infrastructure. While it is not important
+			to know the Spring APIs, understanding the concepts behind them is. At a minimum, the idea behind IoC should be familiar.
+			These being said, the more knowledge one has about the Spring, the faster she will pick Gemini Blueprint.
+			Besides the very comprehensive (and sometimes disarming) documentation that explains in detail the Spring Framework,
+			there are a lot of articles, blog entries and books on the matter - take a look at the Spring framework
+			<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springsource.org/documentation" target="_top">home page</a> for more information. In general, this should be the starting point for 
+			OSGi (or Eclipse plugin) developers wanting to try Gemini Blueprint.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="get-started:first-steps:osgi"></a>4.1.2.&nbsp;Knowing OSGi</h3></div></div></div><p>Java developers, new to OSGi, can start by reading the OSGi Alliance <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org/About/HowOSGi" target="_top">introduction</a>,
+			the OSGi <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org/Specifications/HomePage" target="_top">specifications</a> or one of the articles/blogs 
+			available on the internet (such as the SpringSource <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://blog.springsource.com/category/osgi/" target="_top">blogs</a>).
+			Additionally, the Gemini Blueprint home <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springframework.org/osgi" target="_top">page</a> hosts various links to useful materials.
+			</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="get-started:first-steps:blueprint"></a>4.1.3.&nbsp;Quick start - OSGi 4.2 Blueprint Container</h3></div></div></div><p>As an alternative to the recommended Spring documentation, if OSGi 4.2 is an option, one can read the Blueprint Container specification
+			for a quick introduction to dependency injection and Gemini Blueprint functionality. Note that Blueprint is a subset of Spring and Gemini Blueprint and we recommend
+			the official documentation to get access to the whole set of features.
+			</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="get-started:help"></a>4.2.&nbsp;Need Help?</h2></div></div></div><p>If you encounter issues or you are just looking for an advice, feel free to use one of the links below:</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="get-started:help:community"></a>4.2.1.&nbsp;Community Support</h3></div></div></div><p>The Gemini Blueprint <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/forums/index.php/f/153/" target="_top">forum</a> 
+			(and Spring DM previous <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://forum.springframework.org/forumdisplay.php?f=43" target="_top">forum</a>) is a message board for all Gemini Blueprint users to
+			share information and help each other. Note that registration is needed <span class="emphasis"><em>only</em></span> for posting.
+			</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="get-started:help:professional"></a>4.2.2.&nbsp;Professional Support</h3></div></div></div><p>Professional, from-the-source support, with guaranteed response time, is available from <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springsource.com" target="_top">SpringSource</a>,
+			the company behind Gemini Blueprint and Spring.  
+			</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="get-started:up-to-date"></a>4.3.&nbsp;Following Development</h2></div></div></div><p>For information on the Gemini Blueprint source code repository, nightly builds and snapshot artifacts please see the Gemini Blueprint home 
+		<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springsource.org/osgi" target="_top">page</a>.   
+		</p><p>You can help make Gemini Blueprint best serve the needs of the Spring community by interacting with developers through the Spring Community 
+		<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://forum.springsource.org" target="_top">forums</a>.</p><p>If you encounter a bug or want to suggest an improvement, 
+		please create a ticket on the Gemini Blueprint issue <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://jira.springframework.org/" target="_top">tracker</a>.</p><p>To stay up to date with the latest news and announcements in the Spring eco system, subscribe to the 
+		Spring Community <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springframework.org/" target="_top">Portal</a>.</p><p>Lastly, you can follow the SpringSource OSGi <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://blog.springsource.com/category/osgi/" target="_top">blog</a> or the project team on Twitter 
+		(<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://twitter.com/adriancolyer" target="_top">Adrian</a>, <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://twitter.com/costinl" target="_top">Costin</a>)</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="requirements.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="what-is-new.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;3.&nbsp;Requirements&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;5.&nbsp;What is new?</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/bundle-states.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/bundle-states.png
new file mode 100644
index 0000000..323cdc2
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/bundle-states.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/deadlock.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/deadlock.png
new file mode 100644
index 0000000..fd49b83
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/deadlock.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/i21-banner-rhs.jpg b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/i21-banner-rhs.jpg
new file mode 100644
index 0000000..8b24a77
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/i21-banner-rhs.jpg
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/find-install.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/find-install.png
new file mode 100644
index 0000000..ace425f
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/find-install.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/preferences.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/preferences.png
new file mode 100644
index 0000000..3612ad0
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/preferences.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/select-pde-1.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/select-pde-1.png
new file mode 100644
index 0000000..b729526
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/select-pde-1.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/select-pde-2.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/select-pde-2.png
new file mode 100644
index 0000000..17d887d
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/select-pde-2.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/select-plugins-view.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/select-plugins-view.png
new file mode 100644
index 0000000..e0ddaeb
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/select-plugins-view.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/show-plugins.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/show-plugins.png
new file mode 100644
index 0000000..c91089b
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/show-plugins.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/spring-osgi-plugin.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/spring-osgi-plugin.png
new file mode 100644
index 0000000..c33fc1f
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/spring-osgi-plugin.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/springide-site-select.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/springide-site-select.png
new file mode 100644
index 0000000..27cf0dc
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/springide-site-select.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/springide-site.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/springide-site.png
new file mode 100644
index 0000000..da07781
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/springide-site.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/target-select.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/target-select.png
new file mode 100644
index 0000000..28979ed
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/pde/target-select.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/s2-banner-rhs.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/s2-banner-rhs.png
new file mode 100644
index 0000000..a9f6d95
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/s2-banner-rhs.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/s2_box_logo.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/s2_box_logo.png
new file mode 100644
index 0000000..8c778a5
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/s2_box_logo.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/spring-osgi-model.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/spring-osgi-model.png
new file mode 100644
index 0000000..8e958db
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/spring-osgi-model.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/start-diagram.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/start-diagram.png
new file mode 100644
index 0000000..9dcddce
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/start-diagram.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/stop-diagram.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/stop-diagram.png
new file mode 100644
index 0000000..6e72b9f
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/stop-diagram.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/visibility.png b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/visibility.png
new file mode 100644
index 0000000..47d306e
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/visibility.png
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/images/xdev-spring_logo.jpg b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/xdev-spring_logo.jpg
new file mode 100644
index 0000000..622962e
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/images/xdev-spring_logo.jpg
Binary files differ
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/index.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/index.html
new file mode 100644
index 0000000..f38deff
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/index.html
@@ -0,0 +1,19 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Eclipse Gemini Blueprint Reference Guide</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="next" href="preface.html" title="Preface"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d18e1"></a>Eclipse Gemini Blueprint Reference Guide</h1></div><div><div xmlns:fo="http://www.w3.org/1999/XSL/Format" class="authorgroup"><h2>Authors</h2><p></p><span class="author"><span class="firstname">Adrian M</span> <span class="surname">Colyer</span> 
+            (SpringSource, division of VMware)
+            </span>, <span class="author"><span class="firstname">Hal</span> <span class="surname">Hildebrand</span> 
+            (Oracle)
+            </span>, <span class="author"><span class="firstname">Costin</span> <span class="surname">Leau</span> 
+            (SpringSource, division of VMware)
+            </span>, <span class="author"><span class="firstname">Andy</span> <span class="surname">Piper</span> 
+            (BEA)
+            </span></div></div><div><p class="releaseinfo"></p></div><div><p class="copyright">Copyright &copy; 2006 -, 2011 VMware Inc., Oracle Inc.</p></div><div><div class="legalnotice"><a name="d18e35"></a><p>Documentation made available under the terms of the Eclipse Public License v1.0 
+      and Apache License v2.0 which accompanies this distribution. 
+      The Eclipse Public License is available at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/legal/epl-v10.html" target="_top">http://www.eclipse.org/legal/epl-v10.html</a> and 
+      the Apache License v2.0 is available at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.opensource.org/licenses/apache2.0.php" target="_top">http://www.opensource.org/licenses/apache2.0.php</a>.
+      You may elect to redistribute this code under either of these licenses.</p></div></div></div><hr></div><div class="toc"><dl><dt><span class="preface"><a href="preface.html">Preface</a></span></dt><dt><span class="part"><a href="introduction.html">I. Introduction</a></span></dt><dd><dl><dt><span class="chapter"><a href="eclipse-migration.html">1. Spring Dynamic Modules becomes Eclipse Gemini Blueprint</a></span></dt><dt><span class="chapter"><a href="why-Spring DM.html">2. Why Gemini Blueprint?</a></span></dt><dt><span class="chapter"><a href="requirements.html">3. Requirements</a></span></dt><dt><span class="chapter"><a href="get-started.html">4. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="get-started.html#get-started:first-steps">4.1. First Steps</a></span></dt><dd><dl><dt><span class="section"><a href="get-started.html#get-started:first-steps:spring">4.1.1. Knowing Spring</a></span></dt><dt><span class="section"><a href="get-started.html#get-started:first-steps:osgi">4.1.2. Knowing OSGi</a></span></dt><dt><span class="section"><a href="get-started.html#get-started:first-steps:blueprint">4.1.3. Quick start - OSGi 4.2 Blueprint Container</a></span></dt></dl></dd><dt><span class="section"><a href="get-started.html#get-started:help">4.2. Need Help?</a></span></dt><dd><dl><dt><span class="section"><a href="get-started.html#get-started:help:community">4.2.1. Community Support</a></span></dt><dt><span class="section"><a href="get-started.html#get-started:help:professional">4.2.2. Professional Support</a></span></dt></dl></dd><dt><span class="section"><a href="get-started.html#get-started:up-to-date">4.3. Following Development</a></span></dt></dl></dd><dt><span class="chapter"><a href="what-is-new.html">5. What is new?</a></span></dt><dd><dl><dt><span class="section"><a href="what-is-new.html#dm-2.0.x">5.1. Gemini Blueprint</a></span></dt><dd><dl><dt><span class="section"><a href="what-is-new.html#dm-2.0.x:blueprint">5.1.1. OSGi 4.2 Blueprint Reference Implementation (RI)</a></span></dt><dt><span class="section"><a href="what-is-new.html#dm-2.0.x:jdk5">5.1.2. Java 5</a></span></dt><dt><span class="section"><a href="what-is-new.html#dm-2.0.x:spring-3.x">5.1.3. Spring 3.x</a></span></dt><dt><span class="section"><a href="what-is-new.html#dm-2.0.x:imports">5.1.4. Service Importer Improvements</a></span></dt><dt><span class="section"><a href="what-is-new.html#dm-2.0.x:security">5.1.5. Java 2 Security Integration</a></span></dt></dl></dd><dt><span class="section"><a href="what-is-new.html#dm-1.2.x">5.2. Spring DM 1.2.x</a></span></dt><dd><dl><dt><span class="section"><a href="what-is-new.html#dm-1.2.x:security">5.2.1. Java 2 Security Integration</a></span></dt><dt><span class="section"><a href="what-is-new.html#dm-1.2.x:compendium">5.2.2. Compendium Services Support</a></span></dt><dt><span class="section"><a href="what-is-new.html#dm-1.2.x:sym-name-change">5.2.3. Changed Spring DM Symbolic Names</a></span></dt><dt><span class="section"><a href="what-is-new.html#dm-1.2.x:ebr-usage">5.2.4. Usage of SpringSource Enterprise Bundle Repository (EBR)</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="reference.html">II. Reference Documentation</a></span></dt><dd><dl><dt><span class="chapter"><a href="blueprint.html">6. OSGi 4.2 Blueprint Container</a></span></dt><dd><dl><dt><span class="section"><a href="blueprint.html#blueprint:requirements">6.1. Blueprint Requirements</a></span></dt><dt><span class="section"><a href="blueprint.html#blueprint:differences">6.2. Blueprint/Gemini Blueprint Differences</a></span></dt><dd><dl><dt><span class="section"><a href="blueprint.html#blueprint:differences:xml">6.2.1. XML Declarations</a></span></dt><dt><span class="section"><a href="blueprint.html#blueprint:differences:container">6.2.2. Container Capabilities</a></span></dt></dl></dd><dt><span class="section"><a href="blueprint.html#blueprint:using">6.3. Using Blueprint</a></span></dt></dl></dd><dt><span class="chapter"><a href="bnd-app-ctx.html">7. Bundles and Application Contexts</a></span></dt><dd><dl><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:extender">7.1. The Gemini Blueprint Extender Bundle</a></span></dt><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:app-creation">7.2. Application Context Creation</a></span></dt><dd><dl><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:app-creation:mandatory-deps">7.2.1. Mandatory Service Dependencies</a></span></dt><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:app-creation:app-ctx-publication">7.2.2. Application Context Service Publication</a></span></dt></dl></dd><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:bnd-lifecycle">7.3. Bundle Lifecycle</a></span></dt><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:osgi-resource">7.4. The Resource Abstraction</a></span></dt><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:bundle-scope">7.5. Bundle Scope</a></span></dt><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:access-bnd-ctx">7.6. Accessing the BundleContext</a></span></dt><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:app-destruction">7.7. Application Context Destruction</a></span></dt><dt><span class="section"><a href="bnd-app-ctx.html#bnd-app-ctx:access-bnd-ctx:stop-extender">7.8. Stopping the Extender Bundle</a></span></dt></dl></dd><dt><span class="chapter"><a href="app-deploy.html">8. Packaging and Deploying Spring-based OSGi applications</a></span></dt><dd><dl><dt><span class="section"><a href="app-deploy.html#app-deploy:headers">8.1. Bundle Format And Manifest Headers</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:headers:blueprint">8.2. Blueprint Manifest Configuration Comparison</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:extender-configuration">8.3. Extender Configuration Options</a></span></dt><dd><dl><dt><span class="section"><a href="app-deploy.html#app-deploy:extender-configuration:events">8.3.1. Listening To Extender Events</a></span></dt></dl></dd><dt><span class="section"><a href="app-deploy.html#app-deploy:required-libraries">8.4. Required Spring Framework And Gemini Blueprint
+      Bundles</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:spring-namespaces">8.5. Spring XML Authoring Support</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:imports-exports">8.6. Importing and Exporting Packages</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:ext-libs">8.7. Considerations When Using External Libraries</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:troubleshooting">8.8. Diagnosing Problems</a></span></dt></dl></dd><dt><span class="chapter"><a href="service-registry.html">9. The Service Registry</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:export">9.1. Exporting A Spring Bean As An OSGi Service</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:export:registration">9.1.1. Using The Service Registration</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export:service-factory">9.1.2. <code class="interfacename">org.osgi.framework.ServiceFactory</code> Support</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export:intfs">9.1.3. Controlling The Set Of Advertised Service Interfaces For
+        An Exported Service</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:export:auto-export">9.1.3.1. Detecting The Advertised Interfaces At Runtime</a></span></dt></dl></dd><dt><span class="section"><a href="service-registry.html#service-registry:export:props">9.1.4. Controlling The Set Of Advertised Properties For An
+        Exported Service</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export:depends-on">9.1.5. The depends-on Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export:ccl">9.1.6. The context-class-loader Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export:ranking">9.1.7. The <code class="literal">ranking</code> Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export:cache">9.1.8. The <code class="literal">cache-target</code> Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export:service:attributes">9.1.9. <code class="literal">service</code> Element Attributes</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export:lifecycle">9.1.10. Service Registration And Unregistration Lifecycle</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:export:lifecycle:interface">9.1.10.1. Using <code class="interfacename">OsgiServiceRegistrationListener</code> Interface</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export:blueprint">9.1.10.2. Blueprint <code class="literal">service</code> Comparison</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="service-registry.html#service-registry:refs">9.2. Defining References To OSGi Services</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:refs:availability">9.2.1. Imported Service Availability</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:refs:availability:startup">9.2.1.1. Mandatory Services and Application Startup</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:export-import-relationship">9.2.1.2. Relationship Between The Service Exporter And Service Importer</a></span></dt></dl></dd><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular">9.2.2. Referencing An Individual Service</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:interface">9.2.2.1. Controlling The Set Of Advertised Interfaces For The Imported Service</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:filter">9.2.2.2. The <code class="literal">filter</code> Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:bean-name">9.2.2.3. The <code class="literal">bean-name</code> Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:cardinality">9.2.2.4. The <code class="literal">availability</code> Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:depends-on">9.2.2.5. The <code class="literal">depends-on</code> Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:tccl">9.2.2.6. The <code class="literal">context-class-loader</code> Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:sticky">9.2.2.7. The <code class="literal">sticky</code> Attribute</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:reference:attributes">9.2.2.8. <code class="literal">reference</code> Element Attributes</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:dynamics">9.2.2.9. <code class="literal">reference</code> And OSGi Service Dynamics</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:singular:property-editor">9.2.2.10. Getting A Hold Of The Managed Service Reference</a></span></dt></dl></dd><dt><span class="section"><a href="service-registry.html#service-registry:refs:collection">9.2.3. Referencing A Collection Of Services</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:refs:collection:greedy-proxying">9.2.3.1. Greedy Proxying</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:collection:member-type">9.2.3.2. Member Type</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:collection:attributes">9.2.3.3. Collection (<code class="literal">list</code> And <code class="literal">set</code>) Element Attributes</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:collection:dynamics">9.2.3.4. <code class="literal">list</code> / <code class="literal">set</code> And OSGi Service Dynamics</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:collection:iterator">9.2.3.5. <code class="interfacename">Iterator</code> Contract And Service Collections</a></span></dt></dl></dd><dt><span class="section"><a href="service-registry.html#service-registry:refs:dynamics">9.2.4. Dealing With The Dynamics Of OSGi Imported Services</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:blueprint">9.2.5. Blueprint <code class="literal">reference</code> Comparison</a></span></dt></dl></dd><dt><span class="section"><a href="service-registry.html#service-registry:refs:listener-and-proxies">9.3. Listener And Service Proxies</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:invoker-bundle-context">9.4. Accessing The Caller <code class="interfacename">BundleContext</code></a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:listener-best-practices">9.5. Exporter/Importer Listener Best Practices</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:refs:listener-best-practices:cycles">9.5.1. Listener And Cyclic Dependencies</a></span></dt></dl></dd><dt><span class="section"><a href="service-registry.html#service-registry:refs:global-defaults">9.6. Service Importer Global Defaults</a></span></dt></dl></dd><dt><span class="chapter"><a href="bundles.html">10. Working With Bundles</a></span></dt><dt><span class="chapter"><a href="compendium.html">11. Compendium Services</a></span></dt><dd><dl><dt><span class="section"><a href="compendium.html#compendium:cm">11.1. Configuration Admin</a></span></dt><dd><dl><dt><span class="section"><a href="compendium.html#compendium:cm:props">11.1.1. Exposing Configuration Admin Entries As <code class="classname">Properties</code></a></span></dt><dt><span class="section"><a href="compendium.html#compendium:cm:managed-properties">11.1.2. Managed Properties</a></span></dt><dd><dl><dt><span class="section"><a href="compendium.html#compendium:cm:managed-properties:update">11.1.2.1. Configuration Admin Runtime Updates</a></span></dt></dl></dd><dt><span class="section"><a href="compendium.html#compendium:cm:managed-service-factories">11.1.3. Managed Service Factories</a></span></dt><dt><span class="section"><a href="compendium.html#compendium:cm:dict">11.1.4. Direct Access To Configuration Data</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="testing.html">12. Testing OSGi based Applications</a></span></dt><dd><dl><dt><span class="section"><a href="testing.html#testing:mocks">12.1. OSGi Mocks</a></span></dt><dt><span class="section"><a href="testing.html#testing:integration">12.2. Integration Testing</a></span></dt><dd><dl><dt><span class="section"><a href="testing.html#testing:integration:simple-test">12.2.1. Creating A Simple OSGi Integration Test</a></span></dt><dt><span class="section"><a href="testing.html#testing:integration:provisioning">12.2.2. Installing Test Prerequisites</a></span></dt><dt><span class="section"><a href="testing.html#testing:integration:advanced-topics">12.2.3. Advanced Testing Framework Topics</a></span></dt><dd><dl><dt><span class="section"><a href="testing.html#testing:integration:customize-manifest">12.2.3.1. Customizing The Test Manifest</a></span></dt><dt><span class="section"><a href="testing.html#testing:integration:specify-test-jar-content">12.2.3.2. Customizing Test Bundle Content</a></span></dt><dt><span class="section"><a href="testing.html#testing:integration:understanding-manifest-creator">12.2.3.3. Understanding The <code class="code">MANIFEST.MF</code> Generation</a></span></dt></dl></dd><dt><span class="section"><a href="testing.html#testing:integration:appContext">12.2.4. Creating An OSGi Application Context</a></span></dt><dt><span class="section"><a href="testing.html#testing:integration:specify-platform">12.2.5. Specifying The OSGi Platform To Use</a></span></dt><dt><span class="section"><a href="testing.html#testing:integration:specify-test-wait-time">12.2.6. Waiting For The Test Dependencies</a></span></dt><dt><span class="section"><a href="testing.html#testing:integration:performance">12.2.7. Testing Framework Performance</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="resources.html">III. Other Resources</a></span></dt><dd><dl><dt><span class="chapter"><a href="links.html">13. Useful Links</a></span></dt></dl></dd><dt><span class="part"><a href="appendixes.html">IV. Appendixes</a></span></dt><dd><dl><dt><span class="appendix"><a href="appendix-security.html">A. Security Integration</a></span></dt><dt><span class="appendix"><a href="appendix-pde-integration.html">B. Eclipse Plug-in Development integration</a></span></dt><dt><span class="appendix"><a href="appendix-tips.html">C. Useful OSGi tips</a></span></dt><dd><dl><dt><span class="section"><a href="appendix-tips.html#appendix-tips:fragments">C.1. OSGi Fragments</a></span></dt></dl></dd><dt><span class="appendix"><a href="appendix-roadmap.html">D. Roadmap</a></span></dt><dd><dl><dt><span class="section"><a href="appendix-roadmap.html#d18e6580">D.1. Start Level Integration</a></span></dt></dl></dd><dt><span class="appendix"><a href="appendix-osgi-repo.html">E. Gemini Blueprint OSGi Repository</a></span></dt><dd><dl><dt><span class="section"><a href="appendix-osgi-repo.html#appendix-osgi-repo:old-repo">E.1. Gemini Blueprint Temporary OSGi Repository</a></span></dt><dd><dl><dt><span class="section"><a href="appendix-osgi-repo.html#appendix-osgi-repo:conventions">E.1.1. Repository Conventions</a></span></dt><dt><span class="section"><a href="appendix-osgi-repo.html#appendix-osgi-repo:browsing">E.1.2. Browsing The Repository Content</a></span></dt><dt><span class="section"><a href="appendix-osgi-repo.html#appendix-osgi-repo:maven">E.1.3. Using The Repository With Maven</a></span></dt><dt><span class="section"><a href="appendix-osgi-repo.html#appendix-osgi-repo:ant">E.1.4. Using The Repository With Ant/Ivy</a></span></dt></dl></dd></dl></dd><dt><span class="appendix"><a href="appendix-schema.html">F. Gemini Blueprint Schema</a></span></dt><dt><span class="appendix"><a href="appendix-ack.html">G. Acknowledgments</a></span></dt></dl></dd></dl></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">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&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;Preface</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/introduction.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/introduction.html
new file mode 100644
index 0000000..fc1f1f3
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/introduction.html
@@ -0,0 +1,18 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Part&nbsp;I.&nbsp;Introduction</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="preface.html" title="Preface"><link rel="next" href="eclipse-migration.html" title="Chapter&nbsp;1.&nbsp;Spring Dynamic Modules becomes Eclipse Gemini Blueprint"></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="introduction"></a>Part&nbsp;I.&nbsp;Introduction</h1></div></div></div><div class="partintro" lang="en"><div></div><p>
+            </p><p>This document is the reference guide for Gemini Blueprint. It explains the relationship
+            between Gemini Blueprint and the OSGi 4.2 Blueprint specification, defines Gemini Blueprint 
+            concepts and semantics, the syntax for the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org" target="_top">
+			OSGi Service Platform</a> based namespaces, the Gemini Blueprint extender bundle
+			and the OSGi manifest header entries defined by Gemini Blueprint.</p><p>
+			
+			</p><p>For an introduction to OSGi or Spring, or Gemini Blueprint examples, please refer to
+			<a href="get-started.html" title="Chapter&nbsp;4.&nbsp;Getting Started">Chapter&nbsp;4, <i xmlns:xlink="http://www.w3.org/1999/xlink">Getting Started</i></a> - this documentation refers only to Gemini Blueprint and assumes the user is familiar
+			with OSGi and Spring concepts.</p><p>
+
+			</p><p><span class="emphasis"><em>Note: OSGi is a trademark of the OSGi Alliance. Project
+			name is pending final approval from the Alliance.</em></span></p><p>
+            
+          </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="preface.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="eclipse-migration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Preface&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;1.&nbsp;Spring Dynamic Modules becomes Eclipse Gemini Blueprint</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/issues.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/issues.html
new file mode 100644
index 0000000..d11ac2d
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/issues.html
@@ -0,0 +1,10 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Eclipse Gemini Blueprint</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="issues.html" title="Eclipse Gemini Blueprint"><link rel="next" href="preface.html" title="Preface"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e1"></a>Eclipse Gemini Blueprint</h1></div><div><h2 class="subtitle">Known Issues</h2></div><div><div xmlns:fo="http://www.w3.org/1999/XSL/Format" class="authorgroup"><h2>Authors</h2><p></p><span class="author"><span class="firstname">Costin</span> <span class="surname">Leau</span> 
+            (SpringSource, division of VMware)
+            </span></div></div><div><p class="releaseinfo"></p></div><div><p class="copyright">Copyright &copy; 2006 -, 2011 VMware Inc., Oracle Inc.</p></div><div><div class="legalnotice"><a name="d0e16"></a><p>Documentation made available under the terms of the Eclipse Public License v1.0 
+      and Apache License v2.0 which accompanies this distribution. 
+      The Eclipse Public License is available at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/legal/epl-v10.html" target="_top">http://www.eclipse.org/legal/epl-v10.html</a> and 
+      the Apache License v2.0 is available at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.opensource.org/licenses/apache2.0.php" target="_top">http://www.opensource.org/licenses/apache2.0.php</a>.
+      You may elect to redistribute this code under either of these licenses.</p></div></div></div><hr></div><div class="toc"><dl><dt><span class="preface"><a href="preface.html">Preface</a></span></dt><dt><span class="chapter"><a href="known-issues.html">1. Known Issues</a></span></dt><dd><dl><dt><span class="section"><a href="known-issues.html#OSGI-237">1.1. Publishing prototypes as OSGi services</a></span></dt></dl></dd></dl></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">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&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;Preface</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/known-issues.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/known-issues.html
new file mode 100644
index 0000000..ecbc7cb
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/known-issues.html
@@ -0,0 +1,7 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;1.&nbsp;Known Issues</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="issues.html" title="Eclipse Gemini Blueprint"><link rel="up" href="issues.html" title="Eclipse Gemini Blueprint"><link rel="prev" href="preface.html" title="Preface"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="known-issues"></a>Chapter&nbsp;1.&nbsp;Known Issues</h2></div></div></div><p>As a side note, it worth pointing out that the issues below are not really bugs but rather improvements.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="OSGI-237"></a>1.1.&nbsp;Publishing prototypes as OSGi services</h2></div></div></div><p>Due to the way OSGi platform deals with OSGi services (it caches the instance and returns it every time), prototypes are not fully supported.
+      	Spring DM publishes a proxy that on each call, delegates back to the target application context for retrieving the instance. While with other beans
+      	this works, in case of prototypes, this results in one-instance-per-invocation which is incorrect. Additional functionality needs to be added
+      	to fully support prototypes even though, as pointed out, this involves a knowledge between Client/Server regarding the publication contract.</p><p>See <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://jira.springframework.org/browse/OSGI-237" target="_top">OSGI-237</a></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="preface.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="issues.html">Home</a></td><td width="40%" align="right">&nbsp;</td></tr><tr><td width="40%" align="left" valign="top">Preface&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;</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/links.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/links.html
new file mode 100644
index 0000000..120379e
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/links.html
@@ -0,0 +1,13 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;13.&nbsp;Useful Links</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="resources.html" title="Part&nbsp;III.&nbsp;Other Resources"><link rel="prev" href="resources.html" title="Part&nbsp;III.&nbsp;Other Resources"><link rel="next" href="appendixes.html" title="Part&nbsp;IV.&nbsp;Appendixes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="links"></a>Chapter&nbsp;13.&nbsp;Useful Links</h2></div></div></div><div class="itemizedlist"><ul type="disc"><li><span class="emphasis"><em>Eclipse Gemini Blueprint Home Page</em></span> - <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/gemini/blueprint/" target="_top">here</a></li><li><span class="emphasis"><em>SpringSource OSGi blog</em></span> - <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://blog.springsource.com/category/osgi/" target="_top">here</a></li><li><span class="emphasis"><em>Spring DM Demos</em></span> - <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springframework.org/osgi/demos" target="_top">here</a></li><li><span class="emphasis"><em>Getting Started with OSGi</em></span> - by Neil Bartlett 
+	<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://neilbartlett.name/blog/osgi-articles/" target="_top">here</a> and 
+	<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/resources/?author=Neil%20Bartlett" target="_top">here</a>.
+	</li><li><span class="emphasis"><em>Equinox Documents</em></span> - 
+		<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/equinox/documents/" target="_top">here</a></li><li><span class="emphasis"><em>Felix-related presentations</em></span> - various 
+		<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://felix.apache.org/site/presentations.html" target="_top">presentations</a>
+		hosted by Apache Felix project.
+	</li><li><span class="emphasis"><em>Launching Gemini Blueprint using pax-runner</em></span> - 
+		<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://wiki.ops4j.org/confluence/display/ops4j/Pax+Runner+-+Screencast+-+Spring+OSGi" target="_top">
+		screencast</a></li><li><span class="emphasis"><em>OSGi Alliance Blog</em></span> - <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org/blog/" target="_top">here</a></li></ul></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="resources.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="appendixes.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part&nbsp;III.&nbsp;Other Resources&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;Part&nbsp;IV.&nbsp;Appendixes</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/preface.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/preface.html
new file mode 100644
index 0000000..2c83ea2
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/preface.html
@@ -0,0 +1,23 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Preface</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="index.html" title="Eclipse Gemini Blueprint Reference Guide"><link rel="next" href="introduction.html" title="Part&nbsp;I.&nbsp;Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="preface" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="preface"></a>Preface</h2></div></div></div><p>
+	Application development has seen significant changes in the last years, moving towards a simpler, more agile,
+	POJO-based programming model in order to keep a fast pace. Dependency injection and Aspect Oriented Programming,
+	which were once <span class="emphasis"><em>bleeding edge</em></span> ideas, are used on a daily basis by most developers to manage
+	and simplify the complexity of their applications.</p><p>However, in terms of deployment, things have remained mainly unchanged. Even though code bases are divided into
+	modules, whether logical, conceptual or physical, at runtime they are seen as one monolithic application in which,
+	making a change (be it large or small), requires a restart. <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org" target="_top">OSGi</a> aims
+	to change this by allowing applications to be divided into <span class="emphasis"><em>modules</em></span> that can have different
+	life cycles, dependencies and still exist as a whole.</p><p>Eclipse Gemini Blueprint (formerly Spring Dynamic Modules) focuses on integrating Spring Framework powerful, non-invasive programming model and 
+    concepts with the dynamics and modularity of OSGi platform. It allows transparent exporting and importing of OSGi
+    services, life cycle management and control. Moreover, the Spring DM model was standardized in OSGi r4.2, in the form
+    of the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org/Specifications/Drafts" target="_top">Blueprint</a> Container for which Eclipse Gemini Blueprint
+    serves as the reference implementation (RI).
+    </p><p>
+	While every effort has been made to ensure that this documentation is comprehensive and there are no errors, 
+	nevertheless some topics might require more explanation and some typos might have crept in. If you do spot any 
+	mistakes or even more serious errors and you can spare a few cycles during lunch, please do bring the error 
+	to the attention of the Eclipse Gemini Blueprint team by raising an 
+	<a xmlns:xlink="http://www.w3.org/1999/xlink" href="https://bugs.eclipse.org/bugs/buglist.cgi?product=Gemini.Blueprint" target="_top">issue</a>. Thank you.
+	</p></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="index.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="introduction.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Eclipse Gemini Blueprint Reference Guide&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;Part&nbsp;I.&nbsp;Introduction</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/reference.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/reference.html
new file mode 100644
index 0000000..ac1f220
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/reference.html
@@ -0,0 +1,29 @@
+<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="d18e412"></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>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/requirements.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/requirements.html
new file mode 100644
index 0000000..3aa0d08
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/requirements.html
@@ -0,0 +1,14 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;3.&nbsp;Requirements</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="introduction.html" title="Part&nbsp;I.&nbsp;Introduction"><link rel="prev" href="why-Spring DM.html" title="Chapter&nbsp;2.&nbsp;Why Gemini Blueprint?"><link rel="next" href="get-started.html" title="Chapter&nbsp;4.&nbsp;Getting Started"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="requirements"></a>Chapter&nbsp;3.&nbsp;Requirements</h2></div></div></div><p>Gemini Blueprint 1.x binaries requires JDK level 5.0 and above, 
+      and <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www2.osgi.org/Specifications/HomePage?section=2" target="_top">OSGi
+      R4.2</a> (though R4.1 and even R4.0 might work) and above. For JDK 1.4, consider using Spring Dynamic Modules 1.x.
+      </p><p>
+      Bundles deployed for use with Gemini Blueprint should specify
+      <code class="literal">"Bundle-ManifestVersion: 2"</code> in their manifest (require OSGi R4 behaviour).
+      Note that for OSGi 4.2 specific functionality (such as the Blueprint Container),
+      an appropriate container needs to be used.
+      </p><p>
+      We test against <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/equinox/" target="_top">Equinox</a> 3.6.x, <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://felix.apache.org/" target="_top">Felix</a> 2.0.0+, and <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.knopflerfish.org/" target="_top">Knopflerfish</a> 3.0.x as part of our
+      continuous integration process.</p></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="why-Spring DM.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="get-started.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;2.&nbsp;Why Gemini Blueprint?&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;4.&nbsp;Getting Started</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/resources.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/resources.html
new file mode 100644
index 0000000..92b8219
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/resources.html
@@ -0,0 +1,9 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Part&nbsp;III.&nbsp;Other Resources</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="testing.html" title="Chapter&nbsp;12.&nbsp;Testing OSGi based Applications"><link rel="next" href="links.html" title="Chapter&nbsp;13.&nbsp;Useful Links"></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="resources"></a>Part&nbsp;III.&nbsp;Other Resources</h1></div></div></div><div class="partintro" lang="en"><div></div><p>
+              In addition to this reference documentation, there are a number of
+              other resources that may help you learn how to use OSGi and Eclipse Gemini Blueprint.
+              These additional, third-party resources are enumerated in this 
+              section.
+          </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="testing.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="links.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;12.&nbsp;Testing OSGi based Applications&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;13.&nbsp;Useful Links</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/service-registry.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/service-registry.html
new file mode 100644
index 0000000..90bad75
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/service-registry.html
@@ -0,0 +1,991 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;9.&nbsp;The Service Registry</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="reference.html" title="Part&nbsp;II.&nbsp;Reference Documentation"><link rel="prev" href="app-deploy.html" title="Chapter&nbsp;8.&nbsp;Packaging and Deploying Spring-based OSGi applications"><link rel="next" href="bundles.html" title="Chapter&nbsp;10.&nbsp;Working With Bundles"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="service-registry"></a>Chapter&nbsp;9.&nbsp;The Service Registry</h2></div></div></div><p>The OSGi service registry enables a bundle to publish objects to a
+    shared registry, advertised via a given set of Java interfaces. Published
+    services also have service properties associated with them in the
+    registry. The registry is a crucial feature of OSGi, facilitating decoupling
+    between bundles by promoting a dynamic collaborative model based on 
+    a service-oriented paradigm (publish/find/bind).</p><p>Gemini Blueprint integrates tightly with the service registry, allowing
+	clients to publish, find and bind services in a POJO-friendly manner, without coupling
+	themselves to the OSGi API.</p><p>By using the <code class="literal">osgi</code> namespace for Spring (see
+    <a href="appendix-schema.html" title="Appendix&nbsp;F.&nbsp;Gemini Blueprint Schema">Appendix&nbsp;F, <i xmlns:xlink="http://www.w3.org/1999/xlink">Gemini Blueprint Schema</i></a>) one can be indicate what Spring beans to export 
+    as OSGi services (and how) and to define the criteria and the manner in which
+    services available in the OSGi registry are imported as beans.
+    </p><p>
+    Just like the rest of the namespaces, the <code class="literal">osgi</code> namespace can be embedded
+    or nested inside another top-level namespace (typically the Spring <code class="literal">beans</code> 
+    namespace) or be made the default namespace.</p><p>The following example shows the use of the <code class="literal">osgi</code>
+    namespace within the familiar Spring beans element:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8"?</span>&gt;
+&lt;<span class="hl-tag">beans</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>                               <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+   <span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+   <span class="hl-attribute">xmlns:osgi</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint"</span>                 <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+   <span class="hl-attribute">xsi:schemaLocation</span>=<span class="hl-value">"http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans.xsd</span>                      <span class="co"><img src="images/callouts/3.png" alt="(3)"></span><span class="hl-value">
+       http://www.eclipse.org/gemini/blueprint/schema/blueprint 
+       http://www.eclipse.org/gemini/blueprint/schema/blueprint/gemini-blueprint.xsd"</span>&gt;
+
+    &lt;<span class="hl-tag">osgi:service</span> <span class="hl-attribute">id</span>=<span class="hl-value">"simpleServiceOsgi"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"simpleService"</span>                             <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+      <span class="hl-attribute">interface</span>=<span class="hl-value">"org.xyz.MyService"</span> /&gt;
+&lt;<span class="hl-tag">/beans</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Use Spring Framework <code class="literal">beans</code> schema as the default namespace.
+            </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Import Gemini Blueprint schema and associate a prefix with its namespace (<code class="literal">osgi</code> in this example).
+            </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>Make sure to import Spring beans schema version <span class="emphasis"><em>3.0</em></span> or higher.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>Use Gemini Blueprint elements using the declared namespace prefix (in this example <code class="literal">osgi</code>).</p></td></tr></table></div></div><p>Spring DM users can still use its namespace which is still supported by the Gemini Blueprint bundles. So the above configuration becomes:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8"?</span>&gt;
+&lt;<span class="hl-tag">beans</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>                               <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+   <span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+   <span class="hl-attribute">xmlns:osgi</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi"</span>                               <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+   <span class="hl-attribute">xsi:schemaLocation</span>=<span class="hl-value">"http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans.xsd</span>                      <span class="co"><img src="images/callouts/3.png" alt="(3)"></span><span class="hl-value">
+       http://www.springframework.org/schema/osgi  
+       http://www.springframework.org/schema/osgi/spring-osgi.xsd"</span>&gt;
+
+    &lt;<span class="hl-tag">osgi:service</span> <span class="hl-attribute">id</span>=<span class="hl-value">"simpleServiceOsgi"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"simpleService"</span>                             <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+      <span class="hl-attribute">interface</span>=<span class="hl-value">"org.xyz.MyService"</span> /&gt;
+&lt;<span class="hl-tag">/beans</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Use Spring Framework <code class="literal">beans</code> schema as the default namespace.
+            </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Import Gemini Blueprint schema and associate a prefix with its namespace (<code class="literal">osgi</code> in this example).
+            </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>Make sure to import Spring beans schema version <span class="emphasis"><em>3.0</em></span>.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>Use Gemini Blueprint elements using the declared namespace prefix (in this example <code class="literal">osgi</code>).</p></td></tr></table></div></div><p>Through-out this documentation both the Gemini Blueprint and Spring DM namespaces will be used interchangeably - in fact, at a close look one will notice the two are identical (except for the
+    schema location declaration). As much as possible, new apps should use the Gemini Blueprint namespace as the Spring DM ones while supported, are being deprecated.</p><p>Using the OSGi namespace as a top-level namespace, the same service
+    would be declared as follows:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">?xml version="1.0" encoding="UTF-8"?</span>&gt;
+&lt;<span class="hl-tag">beans:beans</span>                                                                             <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+   <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint"</span>                      <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+   <span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+   <span class="hl-attribute">xmlns:beans</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>                             <span class="co"><img src="images/callouts/3.png" alt="(3)"></span>
+   <span class="hl-attribute">xsi:schemaLocation</span>=<span class="hl-value">"http://www.eclipse.org/gemini/blueprint/schema/blueprint 
+       http://www.eclipse.org/gemini/blueprint/schema/blueprint/gemini-blueprint.xsd
+       http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans.xsd"</span>&gt;                    <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+
+    &lt;<span class="hl-tag">service</span> <span class="hl-attribute">id</span>=<span class="hl-value">"simpleServiceOsgi"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"simpleService"</span>                                  <span class="co"><img src="images/callouts/5.png" alt="(5)"></span>
+       <span class="hl-attribute">interface</span>=<span class="hl-value">"org.xyz.MyService"</span> /&gt;
+
+&lt;<span class="hl-tag">/beans:beans</span>&gt;                                                                           <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p><code class="literal">beans</code> root element has to be prefixed with Spring Framework beans schema prefix (<code class="literal">beans</code> in this example).
+            </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Use Gemini Blueprint schema as the default namespace.
+            </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>Import Spring Framework <code class="literal">beans</code> schema and associate a prefix with its namespace (<code class="literal">beans</code> in this example).
+            </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>Make sure to import Spring beans schema version <span class="emphasis"><em>2.5</em></span>.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/5.png" alt="5" border="0"></td><td valign="top" align="left"><p>Use Gemini Blueprint elements without any prefix.</p></td></tr></table></div></div><p>Using the OSGi namespace as a top-level namespace is particularly
+    convenient when following the configuration <a href="app-deploy.html#app-deploy:headers:xml:tip" title="Tip">recommendation</a> from the previous section,
+    to use a dedicated configuration file for all OSGi-related declarations.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="service-registry:export"></a>9.1.&nbsp;Exporting A Spring Bean As An OSGi Service</h2></div></div></div><p>The <code class="literal">service</code> element is used to define a bean
+      representing an exported OSGi service. There are no requirements for
+      the class or object being exported - practically any bean can be exported. 
+      At a minimum you must specify the  bean to be exported, and the 
+      <span class="emphasis"><em>service interface</em></span> that the service advertises.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">The publication <span class="emphasis"><em>interface</em></span> is used by service consumers, to identify the service. A service instance must implement the interface
+      - specifying a non-implemented interface results in an error. The term <span class="emphasis"><em>interface</em></span> is used in an abstract form; in practice any Java 
+      interface or class, implemented or extended by the service instance can be specified.</td></tr></table></div><p>For example, the declaration</p><pre class="programlisting">&lt;<span class="hl-tag">service</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToPublish"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>/&gt;</pre><p>exports the bean with name <code class="literal">beanToPublish</code> with
+      interface <code class="literal">com.xyz.MessageService</code>. The published
+      service will have a service property with the name
+      <code class="literal">org.eclipse.gemini.blueprint.bean.name</code> set to the name of
+      the target bean being registered (<code class="literal">beanToPublish</code> in
+      this case).</p><p>As an alternative to exporting a named bean, the bean to be
+      exported to the service registry may be defined as an anonymous inner
+      bean of the service element. Typically the top-level namespace would be
+      the <code class="literal">beans</code> namespace when using this style:</p><pre class="programlisting">&lt;<span class="hl-tag">osgi:service</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>&gt;
+  &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">class</span>=<span class="hl-value">"SomeClass"</span>&gt;
+     ...
+  &lt;<span class="hl-tag">/bean</span>&gt;
+&lt;<span class="hl-tag">/osgi:service</span>&gt;</pre><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:registration"></a>9.1.1.&nbsp;Using The Service Registration</h3></div></div></div><p>Each <code class="literal">service</code> declaration, provides control access to the exported service.
+	 The declaration returns an element of type <code class="interfacename">org.osgi.framework.ServiceRegistration</code> which can be
+	 used to read or even modify the properties published for the OSGi service. Since DM 2.X, the definition
+	 has been aligned with the Blueprint spec and unregistration of the service is not possible any more (an exception is thrown
+	 if the <code class="methodname">unregister</code> is called). Additionally, the returned service registration will track
+	 the service being registered (if multiple registration occur, these will be reflected in the returned registration object).
+	 See <a href="service-registry.html#service-registry:export-import-relationship" title="9.2.1.2.&nbsp;Relationship Between The Service Exporter And Service Importer">Section&nbsp;9.2.1.2, &#8220;Relationship Between The Service Exporter And Service Importer&#8221;</a> for more information on when registration/unregistration of
+	 exported services can occur.</p><p>To use the service registration, simply inject the service bean definition into the relevant class; the example below
+     shows one way of updating the service properties from Java:
+     </p><pre class="programlisting">&lt;<span class="hl-tag">service</span> <span class="hl-attribute">id</span>=<span class="hl-value">"myServiceRegistration"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToPublish"</span>
+     <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>/&gt;
+
+&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"propUpdater"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"com.xyz.ServicePropertiesUpdater"</span>&gt;
+   &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"serviceRegistration ref="</span><span class="hl-attribute">myServiceRegistration"/&gt;</span>
+<span class="hl-attribute">&lt;/bean&gt;</span></pre><p>Where <code class="classname">ServicePropertiesUpdater</code> can have the following definition:</p><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">class</span> ServicePropertiesUpdater <span class="hl-keyword">implements</span> BeanNameAware {
+
+	<span class="hl-keyword">private</span> ServiceRegistration serviceRegistration;
+	<span class="hl-keyword">private</span> String beanName;
+
+	<span class="hl-keyword">public</span> <span class="hl-keyword">void</span> setServiceRegistration(ServiceRegistration serviceRegistration) {
+		<span class="hl-keyword">this</span>.serviceRegistration = serviceRegistration;
+	}
+
+	<span class="hl-keyword">public</span> <span class="hl-keyword">void</span> setBeanName(String beanName) {
+		<span class="hl-keyword">this</span>.beanName = beanName;
+	}
+
+	<span class="hl-keyword">public</span> <span class="hl-keyword">void</span> update() {
+		ServiceReference reference = serviceRegistration.getReference();
+		<span class="hl-comment">// get current properties</span>
+		Dictionary dictionary = OsgiServiceReferenceUtils.getServiceProperties(reference);
+		dictionary.put(<span class="hl-string">"last-update"</span>, <span class="hl-keyword">new</span> Date());
+		dictionary.put(<span class="hl-string">"updated-by"</span>, beanName);
+		dictionary.put(<span class="hl-string">"user.name"</span>, System.getProperties().getProperty(<span class="hl-string">"java.version"</span>));
+		<span class="hl-comment">// update properties</span>
+		serviceRegistration.setProperties(dictionary);
+	}
+}</pre><p>Each time the update() method is called, the service properties are retrived, new ones are added and finally the service
+      registration updated.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:service-factory"></a>9.1.2.&nbsp;<code class="interfacename">org.osgi.framework.ServiceFactory</code> Support</h3></div></div></div><p>OSGi Service Platform Core Specification allows services not just to be registered directly,
+      but also to be created on demand, through the <code class="interfacename">org.osgi.framework.ServiceFactory</code>
+      interface (see section 5.6). Gemini Blueprint/Spring DM recognizes this OSGi interface and honours its contract,
+      by forwarding each new bundle request, to the backing bean implementing the aforementioned interface.</p><p> As an alternative to implementing the OSGi API, one can use the <code class="literal">bundle</code> scope, introduced
+      by Gemini Blueprint/Spring DM which offers a <span class="emphasis"><em>instance-per-bundle</em></span> contract (see <a href="bnd-app-ctx.html#bnd-app-ctx:bundle-scope" title="7.5.&nbsp;Bundle Scope">Section&nbsp;7.5, &#8220;Bundle Scope&#8221;</a>
+	  for more information). To declare a bean with <code class="literal">bundle</code> scope
+      simply use the <code class="literal">scope</code> attribute of the
+      <code class="literal">bean</code> element:</p><pre class="programlisting">&lt;<span class="hl-tag">osgi:service</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToBeExported"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>/&gt;
+
+&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"beanToBeExported"</span> <span class="hl-attribute">scope</span>=<span class="hl-value">"bundle"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"com.xyz.MessageServiceImpl"</span>/&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:intfs"></a>9.1.3.&nbsp;Controlling The Set Of Advertised Service Interfaces For
+        An Exported Service</h3></div></div></div><p>The OSGi Service Platform Core Specification defines the term
+        <span class="emphasis"><em>service interface</em></span> to represent the specification
+        of a service's public methods. Typically this will be a Java
+        interface, but the specification also supports registering service
+        objects under a class name, so the phrase <span class="emphasis"><em>service
+        interface</em></span> can be interpreted as referring to either an
+        interface or a class.</p><p>There are several options for specifying the service
+        interface(s) under which the exported service is registered. The
+        simplest mechanism, shown above, is to use the
+        <code class="literal">interface</code> attribute to specify a fully-qualified
+        interface name. To register a service under multiple interfaces the
+        nested <code class="literal">interfaces</code> element can be used in place of
+        the <code class="literal">interface</code> attribute.</p><pre class="programlisting">&lt;<span class="hl-tag">osgi:service</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToBeExported"</span>&gt;
+  &lt;<span class="hl-tag">osgi:interfaces</span>&gt;
+     &lt;<span class="hl-tag">value</span>&gt;com.xyz.MessageService&lt;<span class="hl-tag">/value</span>&gt;
+     &lt;<span class="hl-tag">value</span>&gt;com.xyz.MarkerInterface&lt;<span class="hl-tag">/value</span>&gt;
+  &lt;<span class="hl-tag">/osgi:interfaces</span>&gt;
+&lt;<span class="hl-tag">/osgi:service</span>&gt;</pre><p>It is illegal to use both <code class="literal">interface</code> attribute and
+		<code class="literal">interfaces</code> element at the same time - use only one of them.
+		</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:export:auto-export"></a>9.1.3.1.&nbsp;Detecting The Advertised Interfaces At Runtime</h4></div></div></div><div class="sidebar"><p class="title"><b>Hierarchy visibility</b></p><p>Note that when using <code class="literal">auto-export</code>, only types visible to the
+        	bundle exporting the service are registered. For example, a
+        	super-interface <code class="literal">SI</code> would not be exported as a
+        	supported service interface even when using
+        	<code class="literal">auto-export="interfaces"</code> if <code class="literal">SI</code>
+        	was not on the exporting bundle's classpath.</p><p>Even if exported service class does implement <code class="literal">SI</code> transitively based
+        	on its parent, if the declaring bundle doesn't import the 
+        	interface, the class is unknown to the exported service. While this 
+        	might seem counter intuitive, it is actually one of the most powerful features of OSGi
+        	which give the bundle authors control over the class visibility and path.
+        	</p><p>Please see the FAQ for a more detailed explanation.</p></div><p>Using the <code class="literal">auto-export</code> attribute you can avoid
+        the need to explicitly declare the service interfaces at all by analyzing the
+        object class hierarchy and its interfaces.</p><p> 
+        The <code class="literal">auto-export</code> attribute can have one of four
+        values:</p><div class="itemizedlist"><ul type="disc"><li><p><code class="literal">disabled</code> : the default value; no auto-detected of service
+            interfaces is undertaken and the <code class="literal">interface</code>
+            attribute or <code class="literal">interfaces</code> element must be used
+            instead.</p></li><li><p><code class="literal">interfaces</code> : the service will be registered using all of the
+            Java interface types implemented by the bean to be exported</p></li><li><p><code class="literal">class-hierarchy</code> : the service will be registered using the
+            exported bean's implementation type and super-types</p></li><li><p><code class="literal">all-classes</code> : the service will be registered using the exported
+            bean's implementation type and super-types plus all interfaces
+            implemented by the bean.</p></li></ul></div><p>
+		<code class="literal">auto-export</code> and <code class="literal">interface(s)</code> option are not exclusive; both
+		can be used at the same time for fine grained control over the advertised interfaces if there is such
+		a need. However, the former	option should be enough for most cases. 
+		</p><p>For example, to automatically register a bean under all of the
+        interfaces that it supports you would declare:</p><pre class="programlisting">&lt;<span class="hl-tag">service</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToBeExported"</span> <span class="hl-attribute">auto-export</span>=<span class="hl-value">"interfaces"</span>/&gt;</pre><p>Given the interface hierarchy:</p><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">interface</span> SuperInterface {}
+
+<span class="hl-keyword">public</span> <span class="hl-keyword">interface</span> SubInterface <span class="hl-keyword">extends</span> SuperInterface {}</pre><p>then a service registered as supporting the
+        <code class="literal">SubInterface</code> interface is <span class="emphasis"><em>not</em></span>
+        considered a match in OSGi when a lookup is done for services
+        supporting the <code class="literal">SuperInterface</code> interface. For this
+        reason it is a best practice to export all interfaces supported by the
+        service being registered explicitly, using either the
+        <code class="literal">interfaces</code> element or
+        <code class="literal">auto-export="interfaces"</code>.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:props"></a>9.1.4.&nbsp;Controlling The Set Of Advertised Properties For An
+        Exported Service</h3></div></div></div><p>As previously described, an exported service is always
+        registered with the service property
+        <code class="literal">org.eclipse.gemini.blueprint.bean.name</code> set to the name
+        of the bean being exported. Since DM 2.x, the bean name is also published
+        under <code class="literal">osgi.service.blueprint.compname</code> (introduced by 
+        the OSGi 4.2 Blueprint spec).
+        Additional service properties can be
+        specified using the nested <code class="literal">service-properties</code>
+        element. The <code class="literal">service-properties</code> element contains
+        key-value pairs to be included in the advertised properties of the
+        service. The key must be a string value, and the value must be a type
+        recognized by OSGi Filters. See section 5.5 of the OSGi Service
+        Platform Core Specification for details of how property values are
+        matched against filter expressions.</p><p>The <code class="literal">service-properties</code> element must contain
+        at least one nested <code class="literal">entry</code> element from the Spring
+        beans namespace. For example:</p><pre class="programlisting">&lt;<span class="hl-tag">service</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToBeExported"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MyServiceInterface"</span>&gt;
+  &lt;<span class="hl-tag">service-properties</span>&gt;
+    &lt;<span class="hl-tag">beans:entry</span> <span class="hl-attribute">key</span>=<span class="hl-value">"myOtherKey"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"aStringValue"</span>/&gt;
+    &lt;<span class="hl-tag">beans:entry</span> <span class="hl-attribute">key</span>=<span class="hl-value">"aThirdKey"</span> <span class="hl-attribute">value-ref</span>=<span class="hl-value">"beanToExposeAsProperty"</span>/&gt;
+  &lt;<span class="hl-tag">/service-properties</span>&gt;
+&lt;<span class="hl-tag">/service</span>&gt;</pre><p>Non-String values can be specified by enforcing the value type. Consider the publication
+		of an OSGi event consumer (<code class="interfacename">org.osgi.service.event.EventHandler</code>)
+		that needs to specify the topics it follows as an array under <code class="literal">event.topics</code>
+		property. Below are a list of configuration on how this can be achieved:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">osgi:service</span>
+     <span class="hl-attribute">id</span>=<span class="hl-value">"eventMonitorService"</span>
+     <span class="hl-attribute">ref</span>=<span class="hl-value">"someBean"</span> 
+     <span class="hl-attribute">interface</span>=<span class="hl-value">"org.osgi.service.event.EventHandler"</span>&gt;
+        &lt;<span class="hl-tag">osgi:service-properties</span> <span class="hl-attribute">value-type</span>=<span class="hl-value">"java.lang.String[]"</span>&gt;      <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+            &lt;<span class="hl-tag">entry</span> <span class="hl-attribute">key</span>=<span class="hl-value">"event.topics"</span> <span class="hl-attribute">value</span>=<span class="hl-value">"eventQueue"</span>/&gt;
+        &lt;<span class="hl-tag">/osgi:service-properties</span>&gt;     
+&lt;<span class="hl-tag">/osgi:service</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left">
+				Specify an array type for <span class="emphasis"><em>all</em></span> the values declared inside the <code class="literal">service-properties</code> element.
+				</td></tr></table></div></div><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">osgi:service</span>
+     <span class="hl-attribute">id</span>=<span class="hl-value">"eventMonitorService"</span>
+     <span class="hl-attribute">ref</span>=<span class="hl-value">"someBean"</span> 
+     <span class="hl-attribute">interface</span>=<span class="hl-value">"org.osgi.service.event.EventHandler"</span>&gt;
+        &lt;<span class="hl-tag">osgi:service-properties</span>&gt;
+            &lt;<span class="hl-tag">entry</span> <span class="hl-attribute">key</span>=<span class="hl-value">"event.topics"</span>&gt;
+                &lt;<span class="hl-tag">value</span> <span class="hl-attribute">type</span>=<span class="hl-value">"java.lang.String[]"</span>&gt;eventQueue&lt;<span class="hl-tag">/value</span>&gt;    <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+            &lt;<span class="hl-tag">/entry</span>&gt;
+    	&lt;<span class="hl-tag">/osgi:service-properties</span>&gt;
+&lt;<span class="hl-tag">/osgi:service</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left">
+				Indicate the value type just for this particular value.
+				</td></tr></table></div></div><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">osgi:service</span>
+     <span class="hl-attribute">id</span>=<span class="hl-value">"eventMonitorService"</span>
+     <span class="hl-attribute">ref</span>=<span class="hl-value">"someBean"</span> 
+     <span class="hl-attribute">interface</span>=<span class="hl-value">"org.osgi.service.event.EventHandler"</span>&gt;
+        &lt;<span class="hl-tag">osgi:service-properties</span>&gt;
+            &lt;<span class="hl-tag">entry</span> <span class="hl-attribute">key</span>=<span class="hl-value">"event.topics"</span>&gt;
+                &lt;<span class="hl-tag">array</span> <span class="hl-attribute">value-type</span>=<span class="hl-value">"java.lang.String"</span>&gt;                  <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+                    &lt;<span class="hl-tag">value</span>&gt;eventQueue&lt;<span class="hl-tag">/value</span>&gt;
+                &lt;<span class="hl-tag">/array</span>&gt;
+            &lt;<span class="hl-tag">/entry</span>&gt;
+        &lt;<span class="hl-tag">/osgi:service-properties</span>&gt;
+&lt;<span class="hl-tag">/osgi:service</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left">
+				Use Spring 3.x <code class="literal">&lt;array&gt;</code> element to create an nested array on the fly.
+				</td></tr></table></div></div><p>The Gemini Blueprint roadmap includes support for
+        exporting properties registered in the OSGi Configuration
+        Administration service as properties of the registered service. See
+        <a href="appendix-roadmap.html" title="Appendix&nbsp;D.&nbsp;Roadmap">Appendix&nbsp;D, <i xmlns:xlink="http://www.w3.org/1999/xlink">Roadmap</i></a> for more details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:depends-on"></a>9.1.5.&nbsp;The depends-on Attribute</h3></div></div></div><p>Spring will manage explicit dependencies of a service element,
+        ensuring for example that the bean to be exported as a service is
+        fully constructed and configured before exporting it. If a service has
+        implicit dependencies on other components (including other service
+        elements) that must be fully initialized before the service can be
+        exported, then the optional <code class="literal">depends-on</code> attribute
+        can be used to express these dependencies.</p><pre class="programlisting">&lt;<span class="hl-tag">service</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToBeExported"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MyServiceInterface"</span>
+     <span class="hl-attribute">depends-on</span>=<span class="hl-value">"myOtherComponent"</span>/&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:ccl"></a>9.1.6.&nbsp;The context-class-loader Attribute</h3></div></div></div><p>The OSGi Service Platform Core Specification (most current
+        version is 4.x at time of writing) does not specify what types and
+        resources are visible through the context class loader when an
+        operation is invoked on a service obtained via the service registry.
+        Since some services may use libraries that make certain assumptions
+        about the context class loader, Gemini Blueprint enables you to
+        explicitly control the context class loader during service execution.
+        This is achieved using the option
+        <code class="literal">context-class-loader</code> attribute of the service
+        element.</p><p>The permissible values for the
+        <code class="literal">context-class-loader</code> attribute are
+        <code class="literal">unmanaged</code> (the default) and
+        <code class="literal">service-provider</code>. When the
+        <code class="literal">service-provider</code> value is specified, Spring Dynamic
+        Modules ensures that the context class loader can see all of the
+        resources on the class path of the bundle exporting the service.</p><p class="remark"><i><span class="remark">When setting <code class="literal">context-class-loader</code> to <code class="literal">service-provider</code>, the service object will be proxied to
+        handle the class loader. If the service advertises any concrete class then CGLIB library is required .</span></i></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:ranking"></a>9.1.7.&nbsp;The <code class="literal">ranking</code> Attribute</h3></div></div></div><p>When registering a service with the service registry, you may
+        optionally specify a service ranking (see section 5.2.5 of the OSGi
+        Service Platform Core Specification). When a bundle looks up a service
+        in the service registry, given two or more matching services the one
+        with the highest ranking will be returned. The default ranking value
+        is zero. To explicitly specify a ranking value for the registered
+        service, use the optional <code class="literal">ranking</code> attribute.</p><pre class="programlisting">&lt;<span class="hl-tag">service</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToBeExported"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MyServiceInterface"</span>
+  <span class="hl-attribute">ranking</span>=<span class="hl-value">"9"</span>/&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:cache"></a>9.1.8.&nbsp;The <code class="literal">cache-target</code> Attribute</h3></div></div></div><p>By default, services exported are being retrieved from the container each time they are requested.
+        This allows <span class="emphasis"><em>scoped</em></span> beans to behave correctly depending on the context available
+        when the request is being performed. However, there are cases when the target bean (the entity being
+        exported) needs to be cached no matter its scope. The Blueprint spec for example requires this behaviour
+        for all exported services.</p><p>To accommodate both cases one, Gemini Blueprint 1.0/Spring DM 2.0 introduces a new attribute, <code class="literal">cache-target</code>
+        which, as the name suggests, enables the caching of the exported bean. The instance of the bean retrieved,
+        for the first service registration is cached internally by the exporter which will later reuse it.</p><pre class="programlisting">&lt;<span class="hl-tag">service</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToBeExported"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MyServiceInterface"</span>
+  <span class="hl-attribute">cache-target</span>=<span class="hl-value">"true"</span>/&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:service:attributes"></a>9.1.9.&nbsp;<code class="literal">service</code> Element Attributes</h3></div></div></div><p>
+       As a summary, the following table lists the attributes names, possible values and
+       a short description for each of them.
+       </p><div class="table"><a name="service-export-options"></a><p class="title"><b>Table&nbsp;9.1.&nbsp;OSGi &lt;service&gt; attributes</b></p><div class="table-contents"><table summary="OSGi <service&gt; attributes" width="100%" border="1"><colgroup><col><col><col><col><col><col align="center"></colgroup><thead><tr><th align="center">Name</th><th colspan="4" align="center">Values</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">interface</td><td colspan="4" align="center">fully qualified class name (such as <code class="classname">java.lang.Thread</code>)</td><td align="center">the fully qualified name of the class under which the object will be exported</td></tr><tr><td align="center">ref</td><td colspan="4" align="center">any bean name</td><td align="center">Reference to the named bean to be exported as a service in the service registry.</td></tr><tr><td align="center">context-class-loader</td><td colspan="2" align="center">unmanaged</td><td colspan="2" align="center">service-provider</td><td align="center">Defines how the context class loader will be managed when an operation is invoked on the 
+                exported service. The default value is <code class="literal">unmanaged</code> which means that no management of 
+                the context class loader is attempted. A value of <code class="literal">service-provider</code> guarantees that
+                the context class loader will have visibility of all the resources on the class path of 
+                bundle exporting the service.</td></tr><tr><td align="center">auto-export</td><td align="center">disabled</td><td align="center">interfaces</td><td align="center">class-hierarchy</td><td align="center">all-classes</td><td align="center">Enables Spring to automatically manage the set of service interfaces advertised for the
+				service. By default this facility is <code class="literal">disabled</code>. A value of <code class="literal">interfaces</code> advertises all 
+                of the Java interfaces supported by the exported service. A value of <code class="literal">class-hierarchy</code> 
+                advertises all the Java classes in the hierarchy of the exported service. A value of 
+                <code class="literal">all-classes</code> advertises all Java interfaces and classes.</td></tr><tr><td align="center">ranking</td><td colspan="4" align="center">any integer value</td><td align="center">Specify the service ranking to be used when advertising the service. Default value is 0.</td></tr><tr><td align="center">cache-target</td><td colspan="2" align="center">true</td><td colspan="2" align="center">false</td><td align="center">Specify whether the bean exported as an OSGi service is cached (on first registration) or not. Default value is <code class="literal">false</code></td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:export:lifecycle"></a>9.1.10.&nbsp;Service Registration And Unregistration Lifecycle</h3></div></div></div><p>The service defined by a <code class="literal">service</code> element is
+        registered with the OSGi service registry when the application context
+        is first created. It will be unregistered automatically when the
+        bundle is stopped and the application context is disposed. Additionally,
+        based on the mandatory service import availability, the service can be
+        unregistered and registered at runtime 
+        (see ???).</p><p>If you need to take some action when a service is unregistered
+        because its dependencies are not satisfied (or when it is registered),
+        then you can define a listener bean using the nested
+        <code class="literal">registration-listener</code> element.</p><p>The declaration of a registration listener must use either the
+        <code class="literal">ref</code> attribute to refer to a top-level bean
+        definition, or declare an anonymous listener bean inline. For
+        example:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">service</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"beanToBeExported"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"SomeInterface"</span>&gt;
+  &lt;<span class="hl-tag">registration-listener</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"myListener"</span>                                                <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+    <span class="hl-attribute">registration-method</span>=<span class="hl-value">"serviceRegistered"</span>                                              <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+    <span class="hl-attribute">unregistration-method</span>=<span class="hl-value">"serviceUnregistered"</span>/&gt;                                        <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+  &lt;<span class="hl-tag">registration-listener</span>
+     <span class="hl-attribute">registration-method</span>=<span class="hl-value">"register"</span>&gt;                                                     <span class="co"><img src="images/callouts/3.png" alt="(3)"></span>
+     &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">class</span>=<span class="hl-value">"SomeListenerClass"</span>/&gt;                                                   <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+  &lt;<span class="hl-tag">/registration-listener</span>&gt;
+&lt;<span class="hl-tag">/service</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Listener declaration referring to a top-level bean declaration.
+            </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Indicate the <code class="literal">registration</code> and <code class="literal">unregistration</code> methods.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>Declare only a <code class="literal">registration</code> custom method for this listener.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>Nested listener bean declaration.</p></td></tr></table></div></div><p>The optional <code class="literal">registration-method</code> and
+        <code class="literal">unregistration-method</code> attributes specify the names
+        of the methods defined on the listener bean that are to be invoked
+        during registration and unregistration. A registration and unregistration 
+        callback methods must have a signature matching one of the following formats:</p><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">void</span> anyMethodName(ServiceType serviceInstance, Map serviceProperties);</pre><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">void</span> anyMethodName(ServiceType serviceInstance, Dictionary serviceProperties);</pre><p>where <code class="literal">ServiceType</code> can be any type compatible
+        with the exported service interface of the service.</p><p>The register callback is invoked when the service is initially
+        registered at startup, and whenever it is subsequently re-registered.
+        The unregister callback is invoked during the service unregistration process, 
+        no matter the cause (such as the owning bundle stopping).</p><p>Gemini Blueprint/Spring DM will use the declared <code class="literal">ServiceType</code> argument type
+        and invoke the registration/unregistration method only when a service of a compatible type
+        will be registered/unregistered.</p><p><code class="literal">serviceProperties</code> represents a map holding all the properties
+        of the registered/unregistered service. To preserve compatibility with the OSGi specification
+        this argument can be cast, if needed, to a <code class="literal">java.util.Dictionary</code>.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:export:lifecycle:interface"></a>9.1.10.1.&nbsp;Using <code class="interfacename">OsgiServiceRegistrationListener</code> Interface</h4></div></div></div><p>
+        While we discourage, it is possible to implement a Gemini Blueprint/Spring DM specific interface, namely 
+        <code class="interfacename">org.eclipse.gemini.blueprint.service.exporter.OsgiServiceRegistrationListener</code> which avoids the need
+        to declare the <code class="literal">registration-method</code> and <code class="literal">unregistration-method</code>.
+        However, by implementing <code class="interfacename">OsgiServiceRegistrationListener</code>, your code
+        becomes Gemini Blueprint/Spring DM aware (which goes against the POJO philosophy).
+        </p><p>It is possible for a listener to implement <code class="interfacename">OsgiServiceRegistrationListener</code> interface and
+        declare custom methods. In this case, the Gemini Blueprint/Spring DM interface methods will be called first, followed by the custom methods.
+        </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:export:blueprint"></a>9.1.10.2.&nbsp;Blueprint <code class="literal">service</code> Comparison</h4></div></div></div><p>The Blueprint Container offers a <code class="literal">service</code> element, identical in functionality with the one in Gemini Blueprint/Spring DM. In most cases,
+       the configuration should be identical. Below is a summary of the configuration options available in Gemini Blueprint/Spring DM and Blueprint:</p><div class="table"><a name="service-registry:export:blueprint:comparison"></a><p class="title"><b>Table&nbsp;9.2.&nbsp;Spring DM / Blueprint <code class="literal">&lt;service&gt;</code> Configuration Comparison</b></p><div class="table-contents"><table summary="Spring DM / Blueprint <service&gt; Configuration Comparison" width="100%" border="1"><colgroup><col><col></colgroup><thead><tr><th align="center">Gemini Blueprint/Spring DM</th><th align="center">Blueprint</th></tr></thead><tbody><tr><td align="center">interface</td><td align="center">interface</td></tr><tr><td align="center">ref</td><td align="center">ref</td></tr><tr><td align="center">auto-export</td><td align="center">auto-export</td></tr><tr><td align="center">ranking</td><td align="center">ranking</td></tr><tr><td align="center">context-class-loader</td><td align="center">-</td></tr><tr><td align="center">cache-target</td><td align="center">- (caching is always enabled)</td></tr></tbody></table></div></div><br class="table-break"><p>Since the <code class="literal">registration-listener</code> declaration is identical in declaration and functionality between Blueprint 
+        and Gemini Blueprint/Spring DM, this section does not mention it.</p></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="service-registry:refs"></a>9.2.&nbsp;Defining References To OSGi Services</h2></div></div></div><p>To use services, clients need to look for them inside the OSGi service registry.
+      If found, the platform returns a reference which can be used to get the actual service instance.
+      Consumers should return the service instance as soon as possible and not hold on to it since
+      the service provider can unpublish the service at any point.
+      Since there is no mechanism in Java to force such cleanup, the OSGi specification uses the service
+      references and the aforementioned <span class="emphasis"><em>protocol</em></span> to decouple service providers from
+      service consumers. Please see chapter 5, the Service Layer inside the OSGi Core spec for an in-depth
+      discussion.
+      </p><p>Gemini Blueprint facilitates the consumption of OSGi services by taking care of not 
+      just of the retrieval of service references and instances but also considering the service dynamics.
+      With Gemini Blueprint/Spring DM, imported OSGi services become Spring beans which can be injected, as usual, 
+      into other application components. The service lookup is made using the service interface type
+      that the service is required to support, plus an optional filter
+      expression that matches against the service properties published in the
+      registry. The service instance retrieval is done on demand, on the first request. Once the service
+      becomes unavailable, Gemini Blueprint/Spring DM automatically unregisters the service to avoid using <span class="emphasis"><em>stale</em></span>
+      references.</p><p>As a consumer, one can find zero, one or multiple services matching the desired description.
+      In most scenarios, a single matching service is all that is needed; for those the
+      <code class="literal">reference</code> element defines a reference to a single
+      service that meets the required specification. 
+      In other cases, especially when using the OSGi <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org/documents/osgi_technology/whiteboard.pdf" target="_top">whiteboard
+      pattern</a>, references to <span class="emphasis"><em>all available</em></span>
+      matching services are required. Gemini Blueprint supports the
+      management of this group of references as either a <code class="interfacename">List</code> or a
+      <code class="interfacename">Set</code> collection.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:refs:availability"></a>9.2.1.&nbsp;Imported Service Availability</h3></div></div></div><div class="sidebar"><p class="title"><b>What happened to <code class="literal">cardinality</code>?</b></p><p>
+	  	Since Spring DM 2.x/Gemini Blueprint, the <code class="literal">cardinality</code> notion has been deprecated in favour
+	  	of <code class="literal">availability</code>. The main reasons behind it were aligning the terminology
+	  	with the Blueprint spec and eliminating the repetition of specifying the number of imported
+	  	services: as <code class="literal">osgi</code> elements already specify whether one or multiple services
+	  	are imported, the <code class="literal">cardinality</code> right side (<code class="literal">..N/..1</code>) was
+	  	redundant.
+	  	</p></div><p>Due to the dynamic nature of OSGi, services can come and go, be available or unavailable
+	  	at certain points in time. Depending on the type of service, this can have a negative impact
+	  	on the consumers. Gemini Blueprint/Spring DM alleviates this problem by introducing the
+	  	notion of <code class="literal">availability</code> (formerly known as <code class="literal">cardinality</code>)
+	  	which indicates whether an imported service is <code class="literal">mandatory</code> or 
+	  	<code class="literal">optional</code>.</p><p>As the name implies, a <code class="literal">mandatory</code> service implies a crucial application dependency:
+	  	the service is <span class="emphasis"><em>required</em></span> and its presence can heavily impact the application, in
+	  	a negative way.
+	  	</p><p>An <code class="literal">optional</code> service means just the opposite. The service is tracked and bound 
+	  	(if present), just like a <code class="literal">mandatory</code> reference, but its presence is not required. It is
+	  	fine, from an application perspective if the service is not available - its existence (or lack of) does
+	  	not impact the application functionality.</p><p>As an example, an application could have a <code class="literal">mandatory</code> dependency on a <code class="literal">
+	  	DataSource</code> and an <code class="literal">optional</code> one for a logging service: the application can run fine
+	  	if it cannot log (it does not impact the runtime) but it fails if the backing database is not available.</p><p>In Gemini Blueprint/Spring DM, a <code class="literal">mandatory</code> service import that is unsatisfied (there are no services
+	  	matching the description) can either prevent an application context from starting up or, if already started,
+	  	cause the unregistration of the exported services dependent on it.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:availability:startup"></a>9.2.1.1.&nbsp;Mandatory Services and Application Startup</h4></div></div></div><p>
+	  	The availability of a service impacts the startup of an Spring-powered application and 
+	  	the publication of any exported services that depend on it.
+	  	As mentioned in <a href="bnd-app-ctx.html#bnd-app-ctx:app-creation:mandatory-deps" title="7.2.1.&nbsp;Mandatory Service Dependencies">Section&nbsp;7.2.1, &#8220;Mandatory Service Dependencies&#8221;</a>, a SpringDM application will not start 
+	  	unless <span class="emphasis"><em>all</em></span> <code class="literal">mandatory</code> services are available, at the same time.
+
+	  	Before initializing the context, Gemini Blueprint/Spring DM discovers all the <code class="literal">mandatory</code> service
+	  	declarations and waits for a period of time (5 minutes by default unless otherwise specified by
+	  	each bundle - see the <code class="literal">timeout</code> directive in <a href="app-deploy.html#app-deploy:headers" title="8.1.&nbsp;Bundle Format And Manifest Headers">Section&nbsp;8.1, &#8220;Bundle Format And Manifest Headers&#8221;</a>) for all imports
+	  	to be satisfied, at the same time.
+	  	If the timeout occurs, the application initialization fails (since the required or mandatory services
+	  	are not available) or succeeds, meaning the application context is being initialized.
+	  	</p><p>This way, the framework prevents the application from starting up only to fail since its required
+	  	services are unavailable. This feature avoids the need for ordering the bundle startup sequence as the 
+	  	configuration already acts as a service <span class="emphasis"><em>barrier</em></span> blueprint: no matter the order of the services
+	  	started, on whether they come and go, only when all of them are present, will the context initialization
+	  	commence.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">The fact that an application has mandatory service references, gives no guarantee 
+	  	that a valid service object is available when the service reference is used, since services can 
+	  	get unregistered at any time. Gemini Blueprint/Spring DM guarantees that all the mandatory services were present, at
+	  	the same time, before the application was started but it cannot prevent or guarantee that this services
+	  	will not be disappear during the application life span.</td></tr></table></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/admons/warning.png"></td><th align="left">Warning</th></tr><tr><td align="left" valign="top">
+          It is an error to declare a mandatory reference to a
+          service that is also exported by the same bundle, this behaviour can
+          cause application context creation to fail through either deadlock
+          or timeout.
+        </td></tr></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:export-import-relationship"></a>9.2.1.2.&nbsp;Relationship Between The Service Exporter And Service Importer</h4></div></div></div><p>An exported service may depend, either directly or indirectly,
+        on other (imported) services in order to perform its function. If one of these
+        services is marked as a <span class="emphasis"><em>mandatory</em></span> dependency and the 
+        dependency can no longer be satisfied
+        (because the backing service has gone away and there is no suitable
+        replacement available), then the exported service that depends on it
+        will be automatically unregistered from the service registry - meaning
+        that it is no longer available to clients. If the mandatory dependency
+        becomes satisfied once more (by registration of a suitable service),
+        then the exported service will be re-registered in the service
+        registry.</p><p>This automatic publication management ensures that only when the exported service can work reliable,
+		it is made available for potential OSGi clients. This behaviour takes advantage of the OSGi dynamic nature
+		allowing an application to cope with the ongoing changing without being restarted. 
+		</p><p>This automatic unregistering and re-registering of exported
+        services based on the availability of mandatory dependencies only
+        takes into account declarative dependencies. If exported service
+        <code class="literal">S</code> depends on bean <code class="literal">A</code>, which in
+        turn depends on mandatory imported service <code class="literal">M</code>, and
+        these dependencies are explicit in the Spring configuration file as
+        per the example below, then when <code class="literal">M</code> becomes
+        unsatisfied <code class="literal">S</code> will be unregistered. When
+        <code class="literal">M</code> becomes satisfied again, <code class="literal">S</code>
+        will be re-registered.</p><pre class="programlisting">&lt;<span class="hl-tag">osgi:service</span> <span class="hl-attribute">id</span>=<span class="hl-value">"S"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"A"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"SomeInterface"</span>/&gt;
+
+&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"A"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"SomeImplementation"</span>&gt;
+   &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"helperService"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"M"</span>/&gt;
+&lt;<span class="hl-tag">/bean</span>&gt; 
+
+&lt;<span class="hl-comment">!-- the reference element is used to refer to a service
+     in the service registry --</span>&gt;
+&lt;<span class="hl-tag">osgi:reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"M"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"HelperService"</span> <span class="hl-attribute">availability</span>=<span class="hl-value">"mandatory"</span>/&gt;</pre><p>If however the dependency from <code class="literal">A</code> on
+        <code class="literal">M</code> is not established through configuration as shown
+        above, but instead at runtime through for example passing a reference
+        to <code class="literal">M</code> to <code class="literal">A</code> without any
+        involvement from the Spring container, then Gemini Blueprint
+        will <span class="emphasis"><em>not</em></span> track this dependency.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:refs:singular"></a>9.2.2.&nbsp;Referencing An Individual Service</h3></div></div></div><p>The <code class="literal">reference</code> element is used to define a
+        reference to a service in the service registry.</p><p>Since there can be multiple service matching a given description,
+        the service returned is the service that would be returned by a call to
+        <code class="literal">BundleContext.getServiceReference</code>. This means that
+        the service with the highest ranking will be returned, or if there is
+        a tie in ranking, the service with the lowest service id (the service
+        registered first with the framework) is returned (please see Section 5
+        from the OSGi spec for more information on the service selection algorithm).</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:interface"></a>9.2.2.1.&nbsp;Controlling The Set Of Advertised Interfaces For The Imported Service</h4></div></div></div><p>The <code class="literal">interface</code> attribute identifies the service
+	        interface that a matching service must implement. For example, the
+	        following declaration creates a bean
+	        <code class="literal">messageService</code>, which is backed by the service
+	        returned from the service registry when querying it for a service
+	        offering the <code class="interfacename">MessageService</code> interface.</p><pre class="programlisting">&lt;<span class="hl-tag">reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"messageService"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>/&gt;</pre><p>Just like the <code class="literal">service</code> declaration, when specifying
+	        multiple interfaces, use the nested <code class="literal">interfaces</code> element instead
+	        of <code class="literal">interface</code> attribute:
+	        </p><pre class="programlisting">&lt;<span class="hl-tag">osgi:reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"importedOsgiService"</span>&gt;
+  &lt;<span class="hl-tag">osgi:interfaces</span>&gt;
+     &lt;<span class="hl-tag">value</span>&gt;com.xyz.MessageService&lt;<span class="hl-tag">/value</span>&gt;
+     &lt;<span class="hl-tag">value</span>&gt;com.xyz.MarkerInterface&lt;<span class="hl-tag">/value</span>&gt;
+  &lt;<span class="hl-tag">/osgi:interfaces</span>&gt;
+&lt;<span class="hl-tag">/osgi:reference</span>&gt;</pre><p>It is illegal to use both <code class="literal">interface</code> attribute and
+			<code class="literal">interfaces</code> element at the same time - use only one of them.
+			</p><p>The bean defined by reference element implements all of the
+	        advertised interfaces of the service that are visible to the bundle (called
+	        <span class="emphasis"><em>greedy proxying</em></span>).
+	        If the registered service interfaces include Java class types (as
+	        opposed to interface types) then support for these types is subject to
+	        the restrictions of Spring's AOP implementation (see the Spring
+	        Reference Guide). In short, if the specified interfaces are classes
+	        (rather then interfaces), then <code class="literal">cglib</code> library must be
+	        available, and <code class="literal">final</code> methods are not
+	        supported.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:filter"></a>9.2.2.2.&nbsp;The <code class="literal">filter</code> Attribute</h4></div></div></div><p>The optional <code class="literal">filter</code> attribute can be used
+          to specify an OSGi filter expression and constrains the service
+          registry lookup to only those services that match the given
+          filter.</p><p>For example:</p><pre class="programlisting">&lt;<span class="hl-tag">reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"asyncMessageService"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>
+  <span class="hl-attribute">filter</span>=<span class="hl-value">"(asynchronous-delivery=true)"</span>/&gt;</pre><p>will match only OSGi services that advertise <code class="interfacename">MessageService</code>
+  		  interface and have the property named <code class="literal">asynchronous-delivery</code> set to value <code class="literal">true</code>.
+  		  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:bean-name"></a>9.2.2.3.&nbsp;The <code class="literal">bean-name</code> Attribute</h4></div></div></div><p>The <code class="literal">bean-name</code> attribute is a convenient
+          short-cut for specifying a filter expression that matches on the
+          <code class="literal">bean-name</code> property automatically set when exporting a bean using the
+          <code class="literal">service</code> element (see <a href="service-registry.html#service-registry:export" title="9.1.&nbsp;Exporting A Spring Bean As An OSGi Service">Section&nbsp;9.1, &#8220;Exporting A Spring Bean As An OSGi Service&#8221;</a>).</p><p>Consider the following exporter/importer declarations:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"</span><span class="co"><img src="images/callouts/1.png" alt="(1)"></span><span class="hl-value">messageServiceBean"</span> <span class="hl-attribute">scope</span>=<span class="hl-value">"bundle"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"com.xyz.MessageServiceImpl"</span>/&gt;
+&lt;<span class="hl-comment">!-- service exporter --</span>&gt;
+&lt;<span class="hl-tag">osgi:service</span> <span class="hl-attribute">id</span>=<span class="hl-value">"messageServiceExporter"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"</span><span class="co"><img src="images/callouts/1.png" alt="(1)"></span><span class="hl-value">messageServiceBean"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>/&gt;
+</pre></div><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">osgi:reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"messageService"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>
+   <span class="hl-attribute">bean-name</span>=<span class="hl-value">"</span><span class="co"><img src="images/callouts/1.png" alt="(1)"></span><span class="hl-value">messageServiceBean"</span>/&gt;
+</pre></div><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>the name used with <code class="literal">bean-name</code> attribute</p></td></tr></table></div><p>will match only OSGi services that advertise <code class="interfacename">MessageService</code>
+   		  interface and have the property named <code class="literal">org.eclipse.gemini.blueprint.bean.name</code> set
+   		  to value <code class="literal">messageServiceBean</code>. In short, this means finding all Gemini Blueprint/Spring DM exported
+   		  beans that implement interface <code class="interfacename">MessageService</code> and are named
+   		  <code class="literal">messageServiceBean</code>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:cardinality"></a>9.2.2.4.&nbsp;The <code class="literal">availability</code> Attribute</h4></div></div></div><div class="sidebar"><p class="title"><b>Nested &lt;reference&gt; declarations</b></p><p>In order for Gemini Blueprint/Spring DM to detect mandatory dependencies, any
+		    <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-inner-beans" target="_top">nested/inner</a>
+		    reference declaration will be transformed into top-level
+		    one with a generated name.</p></div><p>The <code class="literal">availability</code> attribute is used to
+          specify whether or not a matching service is required at all times.
+          An <code class="literal">mandatory</code> availability (the default)
+          indicates that a matching service must always be present. A
+          value of <code class="literal">optional</code> indicates that a
+          matching service is not required at all times (see 
+          <a href="service-registry.html#service-registry:refs:singular:dynamics" title="9.2.2.9.&nbsp;reference And OSGi Service Dynamics">Section&nbsp;9.2.2.9, &#8220;<code class="literal">reference</code> And OSGi Service Dynamics&#8221;</a>
+          for more details). The differences in behaviour between <code class="literal">mandatory</code>
+          and <code class="literal">optional</code> services are explained at length in 
+          <a href="service-registry.html#service-registry:refs:availability" title="9.2.1.&nbsp;Imported Service Availability">Section&nbsp;9.2.1, &#8220;Imported Service Availability&#8221;</a>.
+          </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:depends-on"></a>9.2.2.5.&nbsp;The <code class="literal">depends-on</code> Attribute</h4></div></div></div><p>The <code class="literal">depends-on</code> attribute is used to specify
+          that the service reference should not be looked up in the service
+          registry until the named dependent bean has been
+          instantiated.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:tccl"></a>9.2.2.6.&nbsp;The <code class="literal">context-class-loader</code> Attribute</h4></div></div></div><p>The OSGi Service Platform Core Specification (latest
+          version is 4.1 at time of writing) does not specify what types and
+          resources are visible through the context class loader when an
+          operation is invoked on a service obtained via the service registry.
+          Since some services may use libraries that make certain assumptions
+          about the context class loader, Gemini Blueprint enables you
+          to explicitly control the context class loader during service
+          invocation. This is achieved using the option
+          <code class="literal">context-class-loader</code> attribute of the
+          <code class="literal">reference</code> element.</p><div class="sidebar"><p class="title"><b>context class loader management on the importer and exporter</b></p><p>
+		      Gemini Blueprint/Spring DM has the ability to do context class loader management on both
+		      the importer and exporter side. Normally, if Gemini Blueprint/Spring DM works on both sides,
+		      only one side should have this feature enabled. However, if both sides 
+		      (importer and exporter) take advantage of this capability, the last
+		      entity in the call chain will win. This means that the exporter setting,
+		      if enabled, will always override the importer setting (whatever that is). 
+		    </p></div><p>The permissible values for the
+          <code class="literal">context-class-loader</code> attribute are:</p><div class="itemizedlist"><ul type="disc"><li><p><code class="literal">client</code> - during the service invocation,
+          	the context	class loader is guaranteed to be
+          	able to see types on the classpath of the invoking bundle.
+          	This is the default option.</p></li><li><p><code class="literal">service-provider</code> - during the service invocation,
+          	the context	class loader is guaranteed to be
+          	able to see types on the classpath of the bundle exporting
+          	the service.</p></li><li><p><code class="literal">unmanaged</code> - no context class loader
+          	management will occur during the service invocation</p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:sticky"></a>9.2.2.7.&nbsp;The <code class="literal">sticky</code> Attribute</h4></div></div></div><p>Newly introduced in DM 2.x, the <code class="literal">sticky</code> attribute specifies whether an importer will use
+          a backing service until it becomes unavailable or whether it will consider other <span class="emphasis"><em>better</em></span> candidates 
+          (defined as services matching the importer criteria but with a higher ranking or a lower service id) that might appear.
+          In Spring DM 1.x, the importer would always select the best service available at any point in time. Thus, if a service with
+          a higher ranking id becomes available, the proxy would automatically bind to it. In highly dynamic environments, this lack
+          of service affinity becomes problematic so in DM 2.x/Gemini Blueprint, the behaviour has changed (aligning itself with the Blueprint spec).
+          Thus, service importers become <code class="literal">sticky</code> by default meaning that a proxy will use the bound backing service
+          until it becomes unavailable, ignoring any other service updates. Only when the backing service goes down, the proxy will
+          look for a replacement selecting the best candidate at that point in time.
+          To revert to the Spring DM 1.x behaviour, mark the importers as being non-sticky.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:reference:attributes"></a>9.2.2.8.&nbsp;<code class="literal">reference</code> Element Attributes</h4></div></div></div><p>
+       	As a summary, the following table lists the <code class="literal">reference</code> element 
+       	attributes names, possible values and a short description for each of them.
+        </p><div class="table"><a name="reference-import-options"></a><p class="title"><b>Table&nbsp;9.3.&nbsp;OSGi &lt;reference&gt; attributes</b></p><div class="table-contents"><table summary="OSGi <reference&gt; attributes" width="100%" border="1"><colgroup><col><col align="center"><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th>Name</th><th colspan="4" align="center">Values</th><th align="justify">Description</th></tr></thead><tbody><tr><td>interface</td><td colspan="4" align="center">fully qualified class name (such as <code class="classname">java.lang.Thread</code>)</td><td align="justify">The fully qualified name of the class under which the object will be exported.</td></tr><tr><td>filter</td><td colspan="4" align="center">OSGi filter expression (such as <code class="literal">((asynchronous-delivery=true)</code>)</td><td align="justify">OSGi filter expression that is used to constrain the set of matching services
+                in the service registry.</td></tr><tr><td>bean-name</td><td colspan="4" align="center">any string value</td><td align="justify">Convenient shortcut for specifying a filter expression that matches on the bean-name property 
+                that is automatically advertised for beans published using the &lt;service&gt; element.</td></tr><tr><td>context-class-loader</td><td align="center">client</td><td colspan="2" align="center">service-provider</td><td align="center">unmanaged</td><td align="justify">Defines how the context class loader is managed when invoking operations on a service
+                backing this service reference. The default value is <code class="literal">client</code> which means that the context
+                class loader has visibility of the resources on this bundle's classpath. Alternate
+                options are <code class="literal">service-provider</code> which means that the context class loader has visibility of 
+                resources on the bundle classpath of the bundle that exported the service, and <code class="literal">unmanaged</code>
+               	which does not do any management of the context class loader.</td></tr><tr><td>availability</td><td colspan="2" align="center">optional</td><td colspan="2" align="center">mandatory</td><td align="justify">Defines the desired availability of the relationship to the backing service. If not specified, 
+                the <code class="literal">default-availability</code> attribute will apply. 'mandatory' value (the default) means that a backing service 
+                must exist at all times. The 'optional' value indicates that it is acceptable to be for an importer to have no 
+                backing service.</td></tr><tr><td>timeout</td><td colspan="4" align="center">any positive long</td><td align="justify">The amount of time (in milliseconds) to wait for a backing service to be 
+				available when an operation is invoked. If not specified, the <code class="literal">default-timeout</code> attribute will apply.
+                </td></tr><tr><td>sticky</td><td colspan="2" align="center">true</td><td colspan="2" align="center">false</td><td align="justify">Indicates the <span class="emphasis"><em>stickiness</em></span> of the service import. If 'true' (default), the proxy will rebind only if the
+                backing service is no longer available. If 'false' (Spring DM 1.x behaviour), the rebind will occur every time a 'better' candidate
+                appears. A better service is defined by having either a higher ranking or the same ranking and a lower service id.
+                </td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:dynamics"></a>9.2.2.9.&nbsp;<code class="literal">reference</code> And OSGi Service Dynamics</h4></div></div></div><p>
+	      The bean defined by the <code class="literal">reference</code> element
+	      is unchanged throughout the lifetime of the application context
+	      (the object reference remains constant). However, the OSGi service
+	      that backs the reference may come and go at any time. For a
+	      mandatory service reference, the creation of the application context will block until a matching
+	      service is available. <a href="service-registry.html#service-registry:refs:availability" title="9.2.1.&nbsp;Imported Service Availability">Section&nbsp;9.2.1, &#8220;Imported Service Availability&#8221;</a> provides
+	      more details.</p><p>When the service backing a <code class="literal">reference</code> bean
+	      goes away, Gemini Blueprint tries to replace the backing
+	      service with another service matching the reference criteria. An
+	      application may be notified of a change in backing service by
+	      registering a <code class="literal">reference-listener</code>. If no matching service is
+	      available, then the <code class="literal">reference</code> is said to be
+	      <span class="emphasis"><em>unsatisfied</em></span>. An unsatisfied mandatory service
+	      causes any exported service (<code class="literal">service</code> bean) that
+	      depends on it to be unregistered from the service registry until
+	      such time as the reference is satisfied again. See
+	      <a href="service-registry.html#service-registry:export-import-relationship" title="9.2.1.2.&nbsp;Relationship Between The Service Exporter And Service Importer">Section&nbsp;9.2.1.2, &#8220;Relationship Between The Service Exporter And Service Importer&#8221;</a> for more information.</p><p>When an operation is invoked on an unsatisfied
+	      <code class="literal">reference</code> bean (either optional or mandatory),
+	      the invocation blocks until the reference becomes satisfied. The
+	      optional <code class="literal">timeout</code> attribute of the
+	      <code class="literal">reference</code> element enables a timeout value (in
+	      milliseconds) to be specified. If no matching service becomes available 
+	      within the timeout period, an unchecked <code class="classname">ServiceUnavailableException</code> is
+	      thrown.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:singular:property-editor"></a>9.2.2.10.&nbsp;Getting A Hold Of The Managed Service Reference</h4></div></div></div><p>Gemini Blueprint/Spring DM can automatically convert a managed OSGi service to 
+        service reference. That is, if the property into which a reference bean 
+        is to be injected, has type <code class="interfacename">ServiceReference</code> (instead of the service
+        interface supported by the reference), then the managed OSGi
+        <code class="interfacename">ServiceReference</code> for the service will be injected
+        in place of the service itself:</p><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">class</span> BeanWithServiceReference {
+	<span class="hl-keyword">private</span> ServiceReference serviceReference;
+	<span class="hl-keyword">private</span> SomeService service;
+			
+	<span class="hl-comment">// getters/setters ommitted</span>
+}</pre><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"service"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.SomeService"</span>/&gt;
+		
+&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"someBean"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"BeanWithServiceReference"</span>&gt;
+  &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"serviceReference"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"service"</span>/&gt;                                      <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+  &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"service"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"service"</span>/&gt;                                               <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+&lt;<span class="hl-tag">/bean</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Automatic managed service to <code class="interfacename">ServiceReference</code> conversion.
+            </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Managed service is injected without any conversion</p></td></tr></table></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+		The injected <code class="interfacename">ServiceReference</code> is managed by Gemini Blueprint/Spring DM and will change
+		at the same time as the referenced backing OSGi service instance.
+		</td></tr></table></div><p>There are cases when the managed <code class="interfacename">ServiceReference</code> is needed to get a hold of the OSGi service. Unfortunately,
+		most of the OSGi frameworks expect their own <code class="interfacename">ServiceReference</code> classes and will fail when the
+		Gemini Blueprint/Spring DM managed reference is used. For such cases, one can get a hold of the native <code class="interfacename">ServiceReference</code> bound
+		at that moment, by casting the reference object to <code class="interfacename">ServiceReferenceProxy</code> and then calling 
+		<code class="methodname">getTargetServiceReference</code>. Using the example context above, one might use the following code:</p><pre class="programlisting">ServiceReference nativeReference = ((ServiceReferenceProxy)serviceReference).getTargetServiceReference()</pre><p>The returned <code class="literal">nativeReference</code> can be safely passed to the OSGi framework however, since it is not managed by Gemini Blueprint/Spring DM,
+		in time, it might refer to a service different then the one backing the imported OSGi service.</p><p>To avoid this desynchronization, consider using managed <code class="interfacename">ServiceReference</code> objects mainly for reading the
+		bound OSGi service properties rather then getting a hold of OSGi services (which can be simply injected by Gemini Blueprint/Spring DM).</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:refs:collection"></a>9.2.3.&nbsp;Referencing A Collection Of Services</h3></div></div></div><div class="sidebar"><p class="title"><b>Natural vs custom ordering</b></p><p>
+		 Java collection API defines two interfaces for ordering objects -
+		 <code class="interfacename">Comparable</code> and <span class="interface">Comparator</span>.
+		 The first is meant to be implemented by objects for providing <span class="emphasis"><em>natural 
+		 ordering</em></span>. <code class="classname">String</code>, <code class="classname">Long</code>
+		 or <code class="classname">Date</code> are good examples of objects that implement the
+		 <code class="interfacename">Comparable</code> interface.</p><p>
+		 However, there are cases where sorting is different then the natural ordering or,
+		 the objects meant to be sort do not implement <span class="interface">Comparable</span>. To
+		 address this cases, <code class="interfacename">Comparator</code> interface was designed. 
+		 </p><p>For more information on this subject, please consult the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://java.sun.com/docs/books/tutorial/collections/interfaces/order.html" target="_top">
+		 Object ordering</a> chapter from Java 
+		 <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://java.sun.com/docs/books/tutorial/collections/" target="_top">collection</a> tutorial,
+		 </p></div><p>Sometimes an application needs access not simply to any service
+        meeting some criteria, but to <span class="emphasis"><em>all</em></span> services
+        meeting some criteria. Gemini Blueprint/Spring DM allows the matching services may be held in a
+        <code class="interfacename">List</code> or <code class="interfacename">Set</code> 
+        (optionally sorted).</p><p>The difference between using a <code class="interfacename">List</code> and a
+        <code class="interfacename">Set</code> to manage the collection is one of equality.
+        Two or more services published in the registry (and with distinct
+        service ids) may be "equal" to each other, depending on the
+        implementation of equals used by the service implementations. Only one
+        such service will be present in a set, whereas all services returned
+        from the registry will be present in a list. For more details on collections,
+        see <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://java.sun.com/docs/books/tutorial/collections/interfaces/index.html" target="_top">this</a> 
+        tutorial.</p><p>The <code class="literal">set</code> and <code class="literal">list</code> schema elements
+        are used to define collections of services with set or list semantics
+        respectively.</p><p>These elements support the attributes
+        <code class="literal">interface</code>, <code class="literal">filter</code>,
+        <code class="literal">bean-name</code>, <code class="literal">availability</code>, and
+        <code class="literal">context-class-loader</code>, with the same semantics as for
+        the <code class="literal">reference</code> element. The allowable values for the
+        <code class="literal">availability</code> attribute are <code class="literal">mandatory</code>
+        and <code class="literal">optional</code>.</p><p>An availability value of
+        <code class="literal">optional</code> indicates that it is permissible to
+        be no matching services. An availability value of
+        <code class="literal">mandatory</code> indicates that at least one matching service
+        is required at all times. Such a reference is considered a
+        <span class="emphasis"><em>required</em></span> reference and any exported services
+        from the same bundle (<code class="literal">service</code> defined beans) that
+        depend on a mandatory reference will automatically be unregistered
+        when the reference becomes unsatisfied, and reregistered when the
+        reference becomes satisfied again. See <a href="service-registry.html#service-registry:refs:availability" title="9.2.1.&nbsp;Imported Service Availability">Section&nbsp;9.2.1, &#8220;Imported Service Availability&#8221;</a>
+        for more details.</p><p>The bean defined by a <code class="literal">list</code> element is of type
+        <code class="interfacename">java.util.List</code>. The bean defined by a
+        <code class="literal">set</code> element is of type
+        <code class="interfacename">java.util.Set</code>.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">Make sure the Gemini Blueprint/Spring DM collections are injected into properties of compatible types (
+        for example <code class="literal">set</code> into <code class="interfacename">Set</code> or <code class="interfacename">
+        Collection</code>) since otherwise the container will automatically perform 
+        <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/validation.html#beans-beans-conversion" target="_top">type conversion</a>,
+        transforming the Gemini Blueprint/Spring DM managed collection into a 'normal' one, unaware of the OSGi dynamics.
+        </td></tr></table></div><p>The following example defines a bean of type <code class="interfacename">List</code> that 
+        will contain all registered services supporting the
+        <code class="literal">EventListener</code> interface:</p><pre class="programlisting">&lt;<span class="hl-tag">list</span> <span class="hl-attribute">id</span>=<span class="hl-value">"myEventListeners"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.EventListener"</span>/&gt;</pre><p>The members of the collection defined by the bean are managed
+        dynamically by Spring. As matching services are registered and
+        unregistered in the service registry, the collection membership will
+        be kept up to date. Each member of the collection supports the service
+        interfaces that the corresponding service was registered with and that
+        are visible to the bundle.</p><p>Gemini Blueprint/Spring DM supports sorted collections as well, both for set and list.</p><p>It is possible to specify a sorting order using either the
+        <code class="literal">comparator-ref</code> attribute, or the nested
+        <code class="literal">comparator</code> element. The
+        <code class="literal">comparator-ref</code> attribute is used to refer to a
+        named bean implementing <code class="interfacename">java.util.Comparator</code>. The
+        <code class="literal">comparator</code> element can be used to define an inline
+        bean. For example:</p><pre class="programlisting">&lt;<span class="hl-tag">set</span> <span class="hl-attribute">id</span>=<span class="hl-value">"myServices"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MyService"</span>
+  <span class="hl-attribute">comparator-ref</span>=<span class="hl-value">"someComparator"</span>/&gt;
+
+&lt;<span class="hl-tag">list</span> <span class="hl-attribute">id</span>=<span class="hl-value">"myOtherServices"</span> 
+  <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.OtherService"</span>&gt;
+  &lt;<span class="hl-tag">comparator</span>&gt;
+     &lt;<span class="hl-tag">beans:bean</span> <span class="hl-attribute">class</span>=<span class="hl-value">"MyOtherServiceComparator"</span>/&gt;
+  &lt;<span class="hl-tag">/comparator</span>&gt;
+&lt;<span class="hl-tag">/list</span>&gt;</pre><p>To sort using a natural ordering instead of an explicit
+        comparator, you can use the <code class="literal">natural</code>
+        element inside of <code class="literal">comparator</code>. You need to specify
+        the basis for the natural ordering: based on the service references,
+        following the <code class="interfacename">ServiceReference</code> natural ordering
+        defined in the OSGi Core Specification release 4, version 4.1, section 6.1.23; 
+        or based on the services themselves (in which case the services must be
+        <code class="interfacename">Comparable</code>).</p><pre class="programlisting">&lt;<span class="hl-tag">list</span> <span class="hl-attribute">id</span>=<span class="hl-value">"myServices"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MyService"</span>&gt;
+  &lt;<span class="hl-tag">comparator</span>&gt;&lt;<span class="hl-tag">natural</span> <span class="hl-attribute">basis</span>=<span class="hl-value">"services"</span>/&gt;&lt;<span class="hl-tag">/comparator</span>&gt;
+&lt;<span class="hl-tag">/list</span>&gt;
+
+&lt;<span class="hl-tag">set</span> <span class="hl-attribute">id</span>=<span class="hl-value">"myOtherServices"</span><span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.OtherService"</span>&gt;
+  &lt;<span class="hl-tag">comparator</span>&gt;&lt;<span class="hl-tag">natural</span> <span class="hl-attribute">basis</span>=<span class="hl-value">"service-references"</span>/&gt;&lt;<span class="hl-tag">/comparator</span>&gt;
+&lt;<span class="hl-tag">/set</span>&gt;</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">For a sorted set, a <code class="interfacename">SortedSet</code> implementation will be created.
+		However, since the JDK API does not provide a dedicated <code class="interfacename">SortedList</code>interface, 
+		the sorted list will implement only the <code class="interfacename">List</code> interface.</td></tr></table></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:collection:greedy-proxying"></a>9.2.3.1.&nbsp;Greedy Proxying</h4></div></div></div><p>All OSGi services imported by a Gemini Blueprint/Spring DM service collection publish and are type-compatible with the classes
+			declared by the <code class="literal">interfaces</code> property. However, some services might expose additional (optional) 
+			classes that could be relevant to your application.</p><p>For these cases, Gemini Blueprint/Spring DM collections offer a dedicated attribute called <code class="literal">greedy-proxying</code> which
+			will cause the creates proxies to use <span class="emphasis"><em>all</em></span> the classes advertised by the imported services, visible to the consuming
+			importing bundle. Thus, it is possible to cast the imported proxies to classes different then those specified in the
+			<code class="literal">interfaces</code>. For example, with the following list definition:
+			</p><pre class="programlisting">&lt;<span class="hl-tag">list</span> <span class="hl-attribute">id</span>=<span class="hl-value">"services"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.SomeService"</span> <span class="hl-attribute">greedy-proxying</span>=<span class="hl-value">"true"</span>/&gt;</pre><p>one can do the following iteration (assuming <code class="classname">MessageDispatcher</code> type is imported by the bundle):</p><pre class="programlisting"><span class="hl-keyword">for</span> (Iterator iterator = services.iterator(); iterator.hasNext();) {
+	SomeService service = (SomeService) iterator.next();
+	service.executeOperation();
+	<span class="hl-comment">// if the service implements an additional type</span>
+	<span class="hl-comment">// do something extra</span>
+	<span class="hl-keyword">if</span> (service <span class="hl-keyword">instanceof</span> MessageDispatcher) {
+		((MessageDispatcher)service).sendAckMessage();
+	}
+}</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">Before using greedy proxies and <code class="literal">instanceof</code> statements, consider using a different
+			interface/class for your services which provides better 
+			<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming" target="_top">polymorphism</a> 
+			and is more 
+			<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://en.wikipedia.org/wiki/Object_oriented" target="_top">object-oriented</a>.</td></tr></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:collection:member-type"></a>9.2.3.2.&nbsp;Member Type</h4></div></div></div><p>Since Spring DM 2.x/Gemini Blueprint, service collections can contain either service instances (default) or service references. The latter is useful if
+			the services themselves are not relevant but rather their properties and availability. For example, to track the service references,
+			the following configuration can be used:</p><pre class="programlisting">&lt;<span class="hl-tag">list</span> <span class="hl-attribute">id</span>=<span class="hl-value">"services"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.SomeService"</span> <span class="hl-attribute">member-type</span>=<span class="hl-value">"service-reference"</span>/&gt;</pre><p>Note that the collection contains <span class="emphasis"><em>native</em></span> service references which can be used by client to retrieve the backing
+			service (if needed). However, when using Gemini Blueprint/Spring DM this use case is discouraged since one can let the framework track the services instead
+			and get the (native) associated service reference from the proxy directly (see <a href="service-registry.html#service-registry:refs:singular:property-editor" title="9.2.2.10.&nbsp;Getting A Hold Of The Managed Service Reference">Section&nbsp;9.2.2.10, &#8220;Getting A Hold Of The Managed Service Reference&#8221;</a> 
+			for more details).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:collection:attributes"></a>9.2.3.3.&nbsp;Collection (<code class="literal">list</code> And <code class="literal">set</code>) Element Attributes</h4></div></div></div><p>
+		<code class="literal">list</code> and <code class="literal">set</code> elements support all the attributes available to
+		<code class="literal">reference</code> element except the <code class="literal">timeout</code> attribute.
+		
+       	See the following table as a summary of the <code class="literal">list</code> and <code class="literal">set</code> element 
+       	attribute names, possible values and a short description for each of them.
+        </p><div class="table"><a name="collection-import-options"></a><p class="title"><b>Table&nbsp;9.4.&nbsp;&lt;list&gt;/&lt;set&gt; attributes</b></p><div class="table-contents"><table summary="<list&gt;/<set&gt; attributes" width="100%" border="1"><colgroup><col><col align="center"><col align="center"><col align="center"><col align="center"><col align="justify"></colgroup><thead><tr><th>Name</th><th colspan="4" align="justify">Values</th><th align="justify">Description</th></tr></thead><tbody><tr><td>interface</td><td colspan="4" align="justify">fully qualified class name (such as <code class="classname">java.lang.Thread</code>)</td><td align="justify">The fully qualified name of the class under which the object will be exported.</td></tr><tr><td>filter</td><td colspan="4" align="justify">OSGi filter expression (such as <code class="literal">((asynchronous-delivery=true)</code>)</td><td align="justify">OSGi filter expression that is used to constrain the set of matching services
+                in the service registry.</td></tr><tr><td>bean-name</td><td colspan="4" align="justify">any string value</td><td align="justify">Convenient shortcut for specifying a filter expression that matches on the bean-name property 
+                that is automatically advertised for beans published using the &lt;service&gt; element.</td></tr><tr><td>context-class-loader</td><td align="center">client</td><td colspan="2" align="center">service-provider</td><td align="center">unmanaged</td><td align="justify">Defines how the context class loader is managed when invoking operations on a service
+                backing this service reference. The default value is <code class="literal">client</code> which means that the context
+                class loader has visibility of the resources on this bundle's classpath. Alternate
+                options are <code class="literal">service-provider</code> which means that the context class loader has visibility of 
+                resources on the bundle classpath of the bundle that exported the service, and <code class="literal">unmanaged</code>
+               	which does not do any management of the context class loader.</td></tr><tr><td>availability</td><td colspan="2" align="center">optional</td><td colspan="2" align="center">mandatory</td><td align="justify">Defines the desired availability of the relationship to the backing service. If not specified, 
+                the <code class="literal">default-availability</code> attribute will apply. 'mandatory' value (the default) means that a backing service 
+                must exist at all times. The 'optional' value indicates that it is acceptable to be for an importer to have no 
+                backing service.</td></tr><tr><td>comparator-ref</td><td colspan="4" align="justify">any string value</td><td align="justify">Named reference to a bean acting as comparator for the declaring collection. Declaring a comparator automatically
+                makes the declaring collection sorted.</td></tr><tr><td>greedy-proxying</td><td colspan="2" align="center">true</td><td colspan="2" align="center">false</td><td align="justify">Indicates whether the proxies created for the imported OSGi services will be generated using 
+                just the classes specified (<code class="literal">false</code>) or all the classes exported by the service and visible to
+                the importing bundle (<code class="literal">true</code>). The default value is <code class="literal">false</code>.</td></tr><tr><td>member-type</td><td colspan="2" align="center">service-object</td><td colspan="2" align="center">service-reference</td><td align="justify">Indicates the type of object that will be placed within the reference collection.  
+    <code class="literal">service-object</code> (the default) indicates the collection contains service proxies for imported services.
+    <code class="literal">service-reference</code> indicates the collection contains <code class="literal">ServiceReference</code> objects matching the 
+    target service type.</td></tr></tbody></table></div></div><br class="table-break"><p>The table below lists the attributes available for the <code class="literal">comparator/natural</code> sub element.</p><div class="table"><a name="collection-import-comparator-options"></a><p class="title"><b>Table&nbsp;9.5.&nbsp;collection &lt;comparator&gt; attributes</b></p><div class="table-contents"><table summary="collection <comparator&gt; attributes" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th colspan="2">Values</th><th>Description</th></tr></thead><tbody><tr><td>basis</td><td>service</td><td>service-reference</td><td>Indicate the element on which <span class="emphasis"><em>natural ordering</em></span> should apply - <code class="literal">service</code> for considering
+                the service instance and <code class="literal">service-reference</code> for considering the service reference instead of the service.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:collection:dynamics"></a>9.2.3.4.&nbsp;<code class="literal">list</code> / <code class="literal">set</code> And OSGi Service Dynamics</h4></div></div></div><p>
+          A collection of OSGi services will change its content during the lifetime
+          of the application context since it needs to reflect the state of the OSGi
+          space. As service are registered and unregistered, they will be added or
+          removed from the collection.</p><p>While a <code class="literal">reference</code> declaration will try to
+          find a replacement if the backing service is unregistered, the collection
+          will simply remove the service from the collection. 
+          Like <code class="literal">reference</code>, a collection of services can have a specified <code class="literal">availability</code>.
+          As opposed to <code class="literal">reference</code>s though, since Spring DM 2.x/Gemini Blueprint, a collection content can be queried, no matter
+          its availability and the number of services held.</p><p>Just like <code class="literal">reference</code>, mandatory collections
+          will trigger the unregistration of any exported service that depends
+          upon it. See
+	      <a href="service-registry.html#service-registry:export-import-relationship" title="9.2.1.2.&nbsp;Relationship Between The Service Exporter And Service Importer">Section&nbsp;9.2.1.2, &#8220;Relationship Between The Service Exporter And Service Importer&#8221;</a> for more information.
+          </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="service-registry:refs:collection:iterator"></a>9.2.3.5.&nbsp;<code class="interfacename">Iterator</code> Contract And Service Collections</h4></div></div></div><p>The recommend way of traversing a collection is by using an <code class="interfacename">Iterator</code>.
+		  However, since OSGi services can come and go, the content of the managed service collection will be adjusted
+		  accordingly. Gemini Blueprint/Spring DM will transparently update all <code class="interfacename">Iterator</code>s held by 
+		  the user so it is possible to safely traverse the collection while it is being modified. Moreover, the 
+		  <code class="interfacename">Iterator</code>s will reflect all the changes made to the collection, even if 
+		  they occurred after the <code class="interfacename">Iterator</code>s were created (that is during the iteration).
+		  Consider a case where a collection shrinks significantly (for example a big number of OSGi
+		  services are shutdown) right after an iteration started.
+		  To avoid dealing with the resulting 'dead' service references,
+		  Gemini Blueprint/Spring DM iterators do not take collection snapshots (that can be inaccurate) 
+		  but rather are updated on each service event so they reflect the latest collection state, 
+		  no matter how fast or slow the iteration is.</p><p>It is important to note that a service update will only influence <code class="interfacename">Iterator</code>
+		  operations that are executed after the event occurred. Services already returned by the iterator will not be
+		  updated even if the backing service has been unregistered. As a side note, if an operation is invoked on
+          such a service that has been unregistered, a <code class="literal">ServiceUnavailableException</code> will be thrown. 
+		  </p><p>To conclude, while a <code class="literal">reference</code> declaration will search for candidates in case the
+		  backing service has been unregistered, a service collections will not replace unregistered services returned
+		  to the user. However, it will remove the unregistered services from the collection so future iterations will not
+		  encounter them.
+		  </p><p>Please note that the <code class="interfacename">Iterator</code> contract is guaranteed meaning that 
+		  <code class="literal">next()</code> method <span class="emphasis"><em>always</em></span> obey the result of the previous 
+		  <code class="literal">hasNext()</code> invocation.</p><div class="table"><a name="collection-iterator-contract"></a><p class="title"><b>Table&nbsp;9.6.&nbsp;Dynamic service collection <code class="interfacename">Iterator</code> contract</b></p><div class="table-contents"><table summary="Dynamic service collection Iterator contract" width="100%" border="1"><colgroup><col><col></colgroup><thead><tr><th>hasNext() returned value</th><th>next() behaviour</th></tr></thead><tbody><tr><td>true</td><td><span class="emphasis"><em>Always</em></span> return a non-null value, even when the collection has shrunk as services when away.
+                </td></tr><tr><td>false</td><td>per <code class="interfacename">Iterator</code> contract, <code class="classname">NoSuchElementException</code> is thrown.
+                This applies even if other services are added to the collection</td></tr></tbody></table></div></div><br class="table-break"><p>
+	      The behaviour described above, offers a consistent view over the collection even if its structure changes during iteration.
+	      To simply <span class="emphasis"><em>refresh</em></span> the iterator, call <code class="literal">hasNext()</code> again. This will force the
+	      <code class="literal">Iterator</code> to check again the collection status for its particular entry in the iteration.</p><p>
+	 	  In addition, any elements added to the collection during iteration over a <span class="emphasis"><em>sorted</em></span>
+          collection will only be visible if the iterator has not already passed
+          their sort point.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:refs:dynamics"></a>9.2.4.&nbsp;Dealing With The Dynamics Of OSGi Imported Services</h3></div></div></div><div class="sidebar"><p class="title"><b>Where is the <code class="literal">listener</code> element ?</b></p><p>Since Spring DM 2.x/Gemini Blueprint, the <code class="literal">reference-listener</code> replaced
+	  	the <code class="literal">listener</code> element which has been deprecated. The main reasons
+	  	behind the decisions were to align the configuration format closer with the Blueprint
+	  	spec and to avoid some of the confusion regarding the type of listener declared (service or reference
+	  	based). Note that <code class="literal">listener</code> element is still supported.</p></div><p>Whether you are using <code class="literal">reference</code>
+      or <code class="literal">set</code> or <code class="literal">list</code>, Spring Dynamic
+      Modules will manage the backing service. However there are cases
+      where the application needs to be aware when the backing service
+      is updated.</p><p>Such applications, that need to be aware of when the service
+      backing a <code class="literal">reference</code> bean is bound and unbound, can
+      register one or more listeners using the nested
+      <code class="literal">reference-listener</code> (or <code class="literal">listener</code>) element.
+      This element is available on both <code class="literal">reference</code> and
+      <code class="literal">set</code>, <code class="literal">list</code> declarations.
+      In many respects, the service importer listener declaration 
+      is similar to the service exporter listener declaration 
+      (<a href="service-registry.html#service-registry:export:lifecycle" title="9.1.10.&nbsp;Service Registration And Unregistration Lifecycle">Section&nbsp;9.1.10, &#8220;Service Registration And Unregistration Lifecycle&#8221;</a>).
+      
+      The <code class="literal">reference-listener</code> element refers to a bean (either by name, 
+      or by defining one inline)
+      that will receive bind and unbind notifications. If this bean
+      implements Gemini Blueprint/Spring DM's
+      <code class="interfacename">org.eclipse.gemini.blueprint.service.importer.OsgiServiceLifecycleListener</code>
+      interface, then the <code class="literal">bind</code> and
+      <code class="literal">unbind</code> operations in this interface will be
+      invoked. Instead of implementing this interface (or in addition),
+      custom bind and unbind callback methods may be named.</p><p>An example of declaring a listener that implements
+      <code class="interfacename">OsgiServiceLifecycleListener</code>:</p><pre class="programlisting">&lt;<span class="hl-tag">reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"someService"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>&gt;
+  &lt;<span class="hl-tag">reference-listener</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"aListenerBean"</span>/&gt;
+&lt;<span class="hl-tag">/reference</span>&gt;</pre><p>An example of declaring an inline listener bean with custom
+      bind and unbind methods:</p><pre class="programlisting">&lt;<span class="hl-tag">reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"someService"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.MessageService"</span>&gt;
+  &lt;<span class="hl-tag">reference-listener</span> <span class="hl-attribute">bind-method</span>=<span class="hl-value">"onBind"</span> <span class="hl-attribute">unbind-method</span>=<span class="hl-value">"onUnbind"</span>&gt;
+     &lt;<span class="hl-tag">beans:bean</span> <span class="hl-attribute">class</span>=<span class="hl-value">"MyCustomListener"</span>/&gt;
+  &lt;<span class="hl-tag">/reference-listener</span>&gt;
+&lt;<span class="hl-tag">/reference</span>&gt;</pre><p>If the listener bean implements the
+      <code class="interfacename">OsgiServiceLifecycleListener</code> interface
+      <span class="emphasis"><em>and</em></span> the listener definition specifies custom
+      bind and unbind operations then both the
+      <code class="literal">OsgiServiceLifecycleListener</code> operation and the
+      custom operation will be invoked, in that order.</p><p>The signature of a custom bind or unbind method must be one
+      of:</p><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">void</span> anyMethodName(ServiceType service, Dictionary properties);
+
+<span class="hl-keyword">public</span> <span class="hl-keyword">void</span> anyMethodName(ServiceType service, Map properties);
+
+<span class="hl-keyword">public</span> <span class="hl-keyword">void</span> anyMethodName(ServiceReference ref);</pre><p>where <code class="literal">ServiceType</code> can be any type. Please note that
+      bind and unbind callbacks are invoked <span class="emphasis"><em>only</em></span>
+      if the backing service matches the type declared in the method signature(
+      <code class="classname">ServiceType</code>). If you want the callbacks to be called 
+      no matter the type, use <code class="classname">java.lang.Object</code> as a 
+      <code class="literal">ServiceType</code>.</p><p>
+      The <code class="literal">properties</code> parameter contains the set of properties 
+      that the service was registered with.</p><p>If the method signature has a single argument of type
+      <code class="interfacename">ServiceReference</code> then the
+      <code class="interfacename">ServiceReference</code> of the service will be passed to
+      the callback in place of the service object itself.</p><p>When the listener is used with a <code class="literal">reference</code> declaration:</p><div class="itemizedlist"><ul type="disc"><li>A <span class="emphasis"><em>bind</em></span> callback is invoked 
+      when the reference is initially bound to a backing service, 
+      and whenever the backing service is replaced by a new backing service.
+      </li><li>An <span class="emphasis"><em>unbind</em></span> callback is only 
+      invoked when the current backing service is unregistered, and no 
+      replacement service is immediately available 
+      (i.e., the <code class="literal">reference</code> becomes unsatisfied).</li></ul></div><p>When the listener is used with a collection declaration (<code class="literal">set</code> or 
+	  <code class="literal">list</code>):</p><div class="itemizedlist"><ul type="disc"><li>A <span class="emphasis"><em>bind</em></span> callback is invoked 
+      		when a new service is added to the collection.
+      		</li><li>An <span class="emphasis"><em>unbind</em></span> callback is 
+      		invoked when a service is unregistered and is removed
+      		from the collection.</li></ul></div><p>Again note that service collections there is <span class="emphasis"><em>no</em></span> 
+      notion of <span class="emphasis"><em>service rebind</em></span>:
+      services are added or removed from the collection.</p><p>Bind and unbind callbacks are made synchronously as part of
+      processing an OSGi <code class="literal">serviceChanged</code> event for the
+      backing OSGi service, and are invoked on the OSGi thread that
+      delivers the corresponding OSGi
+      <code class="classname">ServiceEvent</code>.</p><p>The table below lists the attributes available for the <code class="literal">reference</code> <code class="literal">listener</code> sub element.</p><div class="table"><a name="reference-import-listener-options"></a><p class="title"><b>Table&nbsp;9.7.&nbsp;OSGi &lt;reference-listener&gt; attributes</b></p><div class="table-contents"><table summary="OSGi <reference-listener&gt; attributes" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Values</th><th>Description</th></tr></thead><tbody><tr><td>ref</td><td>bean name reference</td><td>Name based reference to another bean acting as listener.</td></tr><tr><td>bind-method</td><td>string representing a valid method name</td><td>The name of the method to be invoked when a backing service is bound.</td></tr><tr><td>unbind-method</td><td>string representing a valid method name</td><td>The name of the method to be invoked when a backing service is bound.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:refs:blueprint"></a>9.2.5.&nbsp;Blueprint <code class="literal">reference</code> Comparison</h3></div></div></div><p>Similar to Gemini Blueprint/Spring DM, the Blueprint Container offers a <code class="literal">reference</code> and <code class="literal">list</code> elements, 
+       identical in functionality with the those in Gemini Blueprint/Spring DM. Below is a summary of the configuration options available in Gemini Blueprint/Spring DM and Blueprint:</p><div class="table"><a name="service-registry:refs:blueprint:comparison"></a><p class="title"><b>Table&nbsp;9.8.&nbsp;Spring DM / Blueprint Service Importer Configuration Comparison</b></p><div class="table-contents"><table summary="Spring DM / Blueprint Service Importer Configuration Comparison" width="100%" border="1"><colgroup><col><col></colgroup><thead><tr><th align="center">Gemini Blueprint/Spring DM</th><th align="center">Blueprint</th></tr></thead><tbody><tr><td align="center">Common Elements/Attributes</td><td class="auto-generated">&nbsp;</td></tr><tr><td align="center">interface</td><td align="center">interface</td></tr><tr><td align="center">interfaces</td><td align="center">- (multiple interfaces not supported)</td></tr><tr><td align="center">ref</td><td align="center">ref</td></tr><tr><td align="center">filter</td><td align="center">filter</td></tr><tr><td align="center">bean-name</td><td align="center">component-name</td></tr><tr><td align="center">availability</td><td align="center">availability</td></tr><tr><td align="center">context-class-loader</td><td align="center">-</td></tr><tr><td align="center"><code class="literal">&lt;reference&gt;</code></td><td class="auto-generated">&nbsp;</td></tr><tr><td align="center">timeout</td><td align="center">timeout</td></tr><tr><td align="center">sticky</td><td align="center">- (the importer is always sticky)</td></tr><tr><td align="center"><code class="literal">&lt;list&gt;</code></td><td class="auto-generated">&nbsp;</td></tr><tr><td align="center">member-type</td><td align="center">member-type</td></tr><tr><td align="center">comparator-ref</td><td align="center">-</td></tr><tr><td align="center">greedy-proxying</td><td align="center">-</td></tr></tbody></table></div></div><br class="table-break"><p>Since the <code class="literal">registration-listener</code> declaration is identical in declaration and functionality between Blueprint 
+        and Gemini Blueprint/Spring DM, this section does not mention it.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="service-registry:refs:listener-and-proxies"></a>9.3.&nbsp;Listener And Service Proxies</h2></div></div></div><p>While the importer listener provides access to the OSGi service bound at a certain point, it is important to note that the given argument is <span class="emphasis"><em>not</em></span> 
+       the actual service but a <span class="emphasis"><em>proxy</em></span>. This can have subtle side effects especially with regards to service class name 
+       and identity. The reason behind using a proxy is to prevent the listener from holding strong reference to the service (which can disappear
+       at any point). Listeners interested in tracking certain services should not rely on instance equality (<code class="literal">==</code>). Object equality
+       (<code class="methodname">equals</code>/<code class="methodname">hashcode</code>) can be used but only if the backing service has exposed the aforementioned methods
+       as part of its contract (normally by declaring them on a certain published interface/class). If these methods are not published, the proxy will invoke its own method, not the targets. This is on purpose since, 
+       while the proxy tries to be as transparent as possible, it is up to the developer to define the desired semantics. 
+       </p><p>Thus, it is recommended (especially for <code class="literal">reference</code> importers) to do tracking based on just the service interface/contract 
+       (not identity), service properties (see <code class="constant">org.osgi.framework.Constants#SERVICE_ID</code>) or service notification (bind/unbind).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="service-registry:refs:invoker-bundle-context"></a>9.4.&nbsp;Accessing The Caller <code class="interfacename">BundleContext</code></h2></div></div></div><p>It is sometimes useful for an imported service to know which bundle is using it
+      at a certain time. To help with this scenario, in Gemini Blueprint/Spring DM imported services publish
+      the importing bundle <code class="interfacename">BundleContext</code> through 
+      <code class="classname">LocalBundleContext</code> class. Each time a method on the importer is invoked,
+      the caller <code class="interfacename">BundleContext</code> will be made available, using
+      a <code class="classname">ThreadLocal</code>, through <code class="methodname">getInvokerBundleContext()</code>.
+      </p><p>Please be careful when using this class since it ties your code to Gemini Blueprint/Spring DM API.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="service-registry:refs:listener-best-practices"></a>9.5.&nbsp;Exporter/Importer Listener Best Practices</h2></div></div></div><p>As mentioned above, Gemini Blueprint/Spring DM exporter and importer allow listeners to be
+      used for receiving notifications on when services are bound, unbound, registered or 
+      unregistered. Below you can find some guidance advices when working with listeners:
+      </p><div class="itemizedlist"><ul type="disc"><li>
+       	Do <span class="emphasis"><em>not</em></span> execute long activity tasks inside the listener. If you really
+       	have to, use a separate thread for executing the work. The listener are called synchronously
+       	and so try to be as fast as possible. Doing work inside the listener prevents other the event
+       	to be sent to other listeners and the OSGi service to resume activity. 
+      	</li><li>Use listener custom declaration as much as possible - it doesn't tie your code
+      	to Gemini Blueprint/Spring DM API and it doesn't enforce certain signature names.</li><li>If find yourself repeating bind/unbind method declarations for your listener definitions,
+      	consider using Spring <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-child-bean-definitions" target="_top">
+      	bean definition inheritance</a> to define a common definition that can be reused and customized
+      	accordingly.
+      	</li><li>Prefer <code class="interfacename">java.util.Map</code> instead of <code class="classname">java.util.Dictionary</code>
+      	class. The first is an interface while the latter is a deprecated, abstract class. To preserve compatibility, Gemini Blueprint/Spring DM
+      	will pass to the listeners a <code class="interfacename">Map</code> implementation that can be casted, if needed, to a 
+      	<code class="classname">Dictionary</code>.</li><li>Be careful when using overloaded methods: all methods matching a certain service type will be called which is not
+      	always expected. Consider the following listener:
+      	<div class="programlistingco"><pre class="programlisting"><span class="hl-keyword">public</span> <span class="hl-keyword">class</span> MyListener {
+    <span class="hl-keyword">void</span> register(<span class="co"><img src="images/callouts/1.png" alt="(1)"></span>Object service, Map properties);
+    <span class="hl-keyword">void</span> register(<span class="co"><img src="images/callouts/2.png" alt="(2)"></span>Collection dataService, Map properties);
+    <span class="hl-keyword">void</span> register(<span class="co"><img src="images/callouts/3.png" alt="(3)"></span>SortedSet orderedDataService , Map properties);
+}</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><a name="service-registry:refs:listener:type.1"></a><p><code class="classname">Object</code> type - will match all services for which the listener is triggered. This method will be always called.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><a name="service-registry:refs:listener:type.2"></a><p><code class="classname">Collection</code> type - if this method is called, the <a href="service-registry.html#service-registry:refs:listener:type.1">
+				<code class="classname">Object</code> method</a> is also called.
+				</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><a name="service-registry:refs:listener:type.3"></a><p><code class="classname">SortedSet</code> type - if this method is called, then both the <a href="service-registry.html#service-registry:refs:listener:type.1">
+				<code class="classname">Object</code></a> and <a href="service-registry.html#service-registry:refs:listener:type.2"><code class="classname">Collection</code></a> 
+				methods are called.</p></td></tr></table></div></div></li></ul></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="service-registry:refs:listener-best-practices:cycles"></a>9.5.1.&nbsp;Listener And Cyclic Dependencies</h3></div></div></div><p>There are cases where an exporter/importer listener needs a reference back to the bean it is defined on:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">bean</span> <span class="hl-attribute">id</span>=<span class="hl-value">"listener"</span> <span class="hl-attribute">class</span>=<span class="hl-value">"cycle.Listener"</span>&gt;                                              <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+    &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"target"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"importer"</span> /&gt;                                            <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+&lt;<span class="hl-tag">/bean</span>&gt;
+	
+&lt;<span class="hl-tag">osgi:reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"importer"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"SomeService"</span>&gt;                                   <span class="co"><img src="images/callouts/3.png" alt="(3)"></span>
+    &lt;<span class="hl-tag">osgi:listener</span> <span class="hl-attribute">bind-method</span>=<span class="hl-value">"bind"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"listener"</span> /&gt;                                  <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+&lt;<span class="hl-tag">/osgi:reference</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Listener bean</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Dependency listener -&gt; importer</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>Importer declaration</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>Dependency importer -&gt; listener</p></td></tr></table></div></div><p>
+         The declaration above while valid, creates a dependecy between the <code class="literal">listener</code> and the importer it is defined upon. 
+         In order to create the importer, the <code class="literal">listener</code> has to be resolved and created but in order to do that, 
+         the importer called <code class="literal">service</code> needs to be retrieved (instantiated and configured). This cycle needs to be broken
+         down so that at least one bean can be fully created and configured. This scenario is supported by Gemini Blueprint/Spring DM
+         for both exporter and importers however, if the listener is defined as a nested bean, the cycle cannot be resolved:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">osgi:reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"importer"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"SomeService"</span>&gt;                                   <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+    &lt;<span class="hl-tag">osgi:listener</span> <span class="hl-attribute">bind-method</span>=<span class="hl-value">"bind"</span>&gt;                                                   <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+        &lt;<span class="hl-tag">bean</span> <span class="hl-attribute">class</span>=<span class="hl-value">"cycle.Listener"</span>&gt;                                                    <span class="co"><img src="images/callouts/3.png" alt="(3)"></span>
+            &lt;<span class="hl-tag">property</span> <span class="hl-attribute">name</span>=<span class="hl-value">"target"</span> <span class="hl-attribute">ref</span>=<span class="hl-value">"importer"</span> /&gt;                                    <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+        &lt;<span class="hl-tag">/bean</span>&gt;
+    &lt;<span class="hl-tag">/osgi:listener</span>&gt;
+&lt;<span class="hl-tag">/osgi:reference</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>OSGi service importer</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Dependency between importer -&gt; listener</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>Nested listener declaration</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>Dependency nested listener -&gt; importer</p></td></tr></table></div></div><div class="sidebar"><p class="title"><b>Beans and Cycles</b></p><p>
+         Cyclic dependencies (A depends on B which depends back on A) increase the complexity of your configuration
+         and in most cases indicate a design issue. What beans should be created and destroyed first for example? 
+         While they are a bad practice, the Spring container makes a best attempt to solve the cyclic configurations 
+         when singletons are involved (since the instances can be cached). However this does not work all the time and
+         depends heavily on your specific configuration (Can the bean class be partially initialized ? Does it rely on
+         special <code class="interfacename">Aware</code> interfaces?  Are <code class="interfacename">BeanPostProcessor</code>s involved?)
+         </p></div><p>The example above will fail since <code class="literal">service</code> bean cannot be initialized as it depends on the 
+		listener. The same cycle was seen before but in this case there is subtle yet big different from
+		the container perspective - the listener is declared as a nested/inner-bean (hence the missing bean <code class="literal">id</code>).
+		Inner beans have the same life cycle as their declaring parents and do not have any name. By definition, they are not tracked
+		by the container and are simply created on demand. Since the importer cannot be partially created and the nested listener cannot
+		be cached, the container cannot break the cycle and create the beans. While the two configurations shown above seem similar, one works
+		while the other does not. Another reason to not use cycles unless you really, really have to.</p><p>To conclude, if you need inside the listener to hold a reference to the exporter/importer on which the listener is declared,
+		either declare the listener as a <span class="emphasis"><em>top-level</em></span> bean (as shown before) or consider doing <span class="emphasis"><em>dependency lookup</em></span>.
+		However, the latter approach requires extra contextual information such as the <code class="interfacename">BeanFactory</code> to use and the bean
+		name and is more fragile then <span class="emphasis"><em>dependency injection</em></span>.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/admons/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><p>For those interested in the technical details, neither the exporter and importer cannot be partially initialized since 
+			they require the application context <code class="classname">ClassLoader</code> which is requested through the 
+			<code class="interfacename">BeanClassLoaderAware</code> which relies on a buit-in <code class="interfacename">BeanPostProcessor</code>
+			which is applied only after the bean has been configured and is ready for initialization. If the <code class="classname">ClassLoader</code>
+			was not required then the exporter/importer could have been partially initialized and the case above supported.</p></td></tr></table></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="service-registry:refs:global-defaults"></a>9.6.&nbsp;Service Importer Global Defaults</h2></div></div></div><p>The <code class="literal">osgi</code> namespace offers two
+  	  global attributes for specifying default behaviours for all
+  	  importers declared in that file.</p><p>Thus, when using the <code class="literal">osgi</code> namespace to enclose
+      <code class="literal">set</code>, <code class="literal">list</code> or 
+      <code class="literal">reference</code> elements, one can use:</p><div class="itemizedlist"><ul type="disc"><li><p><code class="literal">default-timeout</code> - 
+      can be used to specify the default timeout (in milliseconds) for all
+      importer elements that do not explicitly specify one. For
+      example:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">beans</span> <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>
+      <span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+      <span class="hl-attribute">xmlns:osgi</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi"</span>                            <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+          <span class="hl-attribute">osgi:default-timeout</span>=<span class="hl-value">"5000"</span>&gt;                                                   <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+
+  &lt;<span class="hl-tag">reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"someService"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.AService"</span>/&gt;                             <span class="co"><img src="images/callouts/3.png" alt="(3)"></span>
+
+  &lt;<span class="hl-tag">reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"someOtherService"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.BService"</span>
+       <span class="hl-attribute">timeout</span>=<span class="hl-value">"1000"</span>/&gt;                                                                  <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+
+&lt;<span class="hl-tag">/beans:beans</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Declare <code class="literal">osgi</code> namespace prefix.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Declare <code class="literal">default-timeout</code>(in miliseconds) on the root element. 
+			If the default is not set, it will have a value of 5 minutes. In this example, the 
+			default value is 5 seconds.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>This <code class="literal">reference</code> will inherit the default timeout value since 
+			it does not specify one. 
+			This service reference will have a timeout of 5 seconds.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>This <code class="literal">reference</code> declares a timeout, overriding the default value.
+			 This service reference will have a timeout of 1 second.</p></td></tr></table></div></div></li><li><p><code class="literal">default-availability</code> -
+		can be used to specify the default availability for all
+      	importer elements that do not explicitly specify one.
+      	Possible values are <code class="literal">optional</code> and <code class="literal">mandatory</code>.
+      	The <code class="literal">default-cardinality</code> attribute, used by Spring DM 1.x, is still
+      	available but it has been deprecated.
+      	</p><p>Consider the following example:</p><div class="programlistingco"><pre class="programlisting">&lt;<span class="hl-tag">beans:beans</span>
+      <span class="hl-attribute">xmlns</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi"</span>                                 <span class="co"><img src="images/callouts/1.png" alt="(1)"></span>
+      <span class="hl-attribute">xmlns:xsi</span>=<span class="hl-value">"http://www.w3.org/2001/XMLSchema-instance"</span>
+      <span class="hl-attribute">xmlns:beans</span>=<span class="hl-value">"http://www.springframework.org/schema/beans"</span>                          <span class="co"><img src="images/callouts/2.png" alt="(2)"></span>
+      <span class="hl-attribute">xmlns:osgi</span>=<span class="hl-value">"http://www.springframework.org/schema/osgi"</span>                            <span class="co"><img src="images/callouts/3.png" alt="(3)"></span>
+         <span class="hl-attribute">osgi:default-availability</span>=<span class="hl-value">"optional"</span>                                            <span class="co"><img src="images/callouts/4.png" alt="(4)"></span>
+         <span class="hl-attribute">default-lazy-init</span>=<span class="hl-value">"false"</span>&gt;                                                      <span class="co"><img src="images/callouts/5.png" alt="(5)"></span>
+
+  &lt;<span class="hl-tag">reference</span> <span class="hl-attribute">id</span>=<span class="hl-value">"someService"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.AService"</span>/&gt;                             <span class="co"><img src="images/callouts/6.png" alt="(6)"></span>
+
+  &lt;<span class="hl-tag">set</span> <span class="hl-attribute">id</span>=<span class="hl-value">"someSetOfService"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.BService"</span>/&gt;                              <span class="co"><img src="images/callouts/7.png" alt="(7)"></span>
+
+  &lt;<span class="hl-tag">list</span> <span class="hl-attribute">id</span>=<span class="hl-value">"anotherListOfServices"</span> <span class="hl-attribute">interface</span>=<span class="hl-value">"com.xyz.CService"</span> 
+               <span class="hl-attribute">availability</span>=<span class="hl-value">"mandatory"</span>/&gt;                                                <span class="co"><img src="images/callouts/8.png" alt="(8)"></span>
+
+&lt;<span class="hl-tag">/beans:beans</span>&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>Declare Gemini Blueprint schema as the default namespace.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>Import Spring Framework beans schema and associate a prefix with its namespace 
+		    (<code class="literal">beans</code> in this example).</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>Import Gemini Blueprint schema and associate a prefix with its namespace 
+		    (<code class="literal">osgi</code> in this example). This is required since the global attributes
+		    have to be declared to an element (<code class="literal">beans</code>) belonging to another schema.
+		    To avoid ambiguity, the Gemini Blueprint/Spring DM schema is imported under a specified prefix as well.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>Declare <code class="literal">default-availability</code> on the root element. 
+			If the default is not set, it will have a value of <code class="literal">mandatory</code>. In this example, the 
+			default value is <code class="literal">optional</code>. Note the <code class="literal">osgi</code> prefix added to
+			the global attribute.</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/5.png" alt="5" border="0"></td><td valign="top" align="left"><p><code class="literal">beans</code> element attributes (such as <code class="literal">default-lazy-init</code>) 
+			do not need a prefix since they are declared as being local and unqualified 
+			(see the beans schema for more information).</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/6.png" alt="6" border="0"></td><td valign="top" align="left"><p>
+			The <code class="literal">reference</code> declaration will inherit the default availability value since it does not specify one.
+			</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/7.png" alt="7" border="0"></td><td valign="top" align="left"><p>
+			The <code class="literal">set</code> declaration will inherit the default availability value since it does not specify one.
+			</p></td></tr><tr><td width="5%" valign="top" align="left"><img src="images/callouts/8.png" alt="8" border="0"></td><td valign="top" align="left"><p>The <code class="literal">list</code> declaration specifies its availability (<code class="literal">mandatory</code>),
+			 overriding the default value.</p></td></tr></table></div></div></li></ul></div><p>The <code class="literal">default-*</code> attributes allow for concise and shorter declarations as well
+      as easy propagation of changes (such as increasing or decreasing the timeout).</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="app-deploy.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="bundles.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;8.&nbsp;Packaging and Deploying Spring-based OSGi applications&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;10.&nbsp;Working With Bundles</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/blueprint/documentation/reference/1.0.1.RELEASE/html/spring-osgi-faq.html b/blueprint/documentation/reference/1.0.1.RELEASE/html/spring-osgi-faq.html
new file mode 100644
index 0000000..98538d9
--- /dev/null
+++ b/blueprint/documentation/reference/1.0.1.RELEASE/html/spring-osgi-faq.html
@@ -0,0 +1,218 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;1.&nbsp;Frequently Asked Questions</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="faq.html" title="Eclipse Gemini Blueprint"><link rel="up" href="faq.html" title="Eclipse Gemini Blueprint"><link rel="prev" href="faq.html" title="Eclipse Gemini Blueprint"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="spring-osgi-faq"></a>Chapter&nbsp;1.&nbsp;Frequently Asked Questions</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eclipse-springdm"></a>1.1.&nbsp;What's the relationship between Spring Dynamic Modules and Gemini Blueprint?</h2></div></div></div><p>Eclipse Gemini Blueprint is based on Spring Dynamic Modules 2.0 which has been migrated
+        to the Eclipse Foundation. While the name and the packages have changed the internals are still the same; one
+        will find both names are used interchangeably (especially by those that have used Spring DM for a while).
+        Further more, all Spring DM applications are supported by Gemini Blueprint (do pay attention to the migration guide available
+        <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/gemini/blueprint/documentation/migration/" target="_top">here</a>).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="name-change"></a>1.2.&nbsp;What happened to "Spring OSGi" project name?</h2></div></div></div><p>The OSGi term is a trademark belonging to <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org/" target="_top">The OSGi Alliance</a>. In order to
+        comply with their guidelines, it was decided that the project name 
+        be changed to "Spring Dynamic Modules for OSGi Service Platforms" 
+        (aka Spring DM). The new name is still pending final approval 
+        by the OSGi Alliance. 
+        The name change was the result of an amicable discussion between 
+        the OSGi Alliance and Interface21. Interface21 is a member of the 
+        OSGi Alliance, and the OSGi	Alliance remain very supportive of 
+        the project.
+        Note that Spring Dynamic Modules has moved to Eclipse Foundation to form Gemini Blueprint project (see above)</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="internal-package"></a>1.3.&nbsp;Why aren't there any javadocs on <code class="literal">*.internal.*</code>?</h2></div></div></div><p><code class="literal">org.eclipse.gemini.blueprint.*.internal</code> packages are
+        meant (as the name implies) to be private and non-public package. Thus,
+        there is no documentation, support or compatibility guarantee for
+        them. In fact, the Gemini Blueprint bundle does not even export
+        them to prevent accidental usage.</p><p>If you find classes under this package, which you really, really
+        depend on, then consider raising an issue on <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://opensource.atlassian.com/projects/spring/browse/OSGI" target="_top">JIRA</a>
+        to have access opened up.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="requirements"></a>1.4.&nbsp;What are Gemini Blueprint requirements?</h2></div></div></div><p>
+	    Gemini Blueprint requires at least Java 1.5, OSGi 4.1 and Spring 3.0.
+	    It might be possible to use Gemini Blueprint on a lower <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://wiki.eclipse.org/index.php/Execution_Environments" target="_top">execution environment</a>
+	    (such <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://java.sun.com/products/cdc/" target="_top">CDC</a>) but 
+	    it is not guaranteed to work.
+	    Both Spring and Gemini Blueprint rely on <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://java.sun.com/products/javabeans/" target="_top">
+	    JavaBeans</a> (java.beans package) which, unfortunately, is missing in most 
+	    restricted environments. See this <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://java.sun.com/products/cdc/reference/cdc_packages.pdf" target="_top">PDF</a> for information on CDC profiles.
+	    Note that, Spring 3.0 also requires Java 1.5. For Spring 2.5 and/or Java 1.4 see 
+	    <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springframework.org/osgi" target="_top">Spring Dynamic Modules</a> 1.x releases.
+	  </p><p>
+	    Nevertheless, experiences and feedback on running Gemini Blueprint in restricted environments 
+	    is welcomed - please use our mailing list.
+	  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="other-module-frameworks"></a>1.5.&nbsp;Are there plans to support other dynamic module frameworks (such as the JSR 277 extensions in Java 7)?</h2></div></div></div><p>There are no current plans to support other dynamic module frameworks.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="restricted-environments"></a>1.6.&nbsp;Will Gemini Blueprint work in restricted environments (such as small/mobile devices)?</h2></div></div></div><p>See the <a href="spring-osgi-faq.html#requirements" title="1.4.&nbsp;What are Gemini Blueprint requirements?">requirements</a> entry. The OSGi Service Platform is designed to run in 
+	  very constrained environments however, Gemini Blueprint depends on the Spring Framework v3.0 which in turn depends on 
+	  JDK 1.5. Thus Gemini Blueprint cannot run on more constrained environments (such as the OSGi Minimum Execution Environment) 
+	  unless Spring itself also runs in those environments. There are no current plans to make such a version of Spring. 
+	  However as existing OSGi developers adopt Gemini Blueprint to simplify creation of OSGi applications and the user
+	  base expands, the target audience can cover domains much broader than <span class="emphasis"><em>enterprise Java applications</em></span>. 
+	  In time this could create a large enough demand to justify the investment needed to allow Spring and Gemini Blueprint to run in
+	  restricted environments.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="supported-osgi-platforms"></a>1.7.&nbsp;What OSGi platforms are supported?</h2></div></div></div><p>
+	  Gemini Blueprint requires an OSGi 4.2 (though it might work on OSGi 4.0 and 4.1) platform. The framework has been tested
+	  on <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/equinox/" target="_top">Equinox</a>, <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://felix.apache.org" target="_top">Felix</a> 
+	  and <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.knopflerfish.org/" target="_top">Knopflerfish</a> 
+	  - in fact, the test suite is <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://build.springframework.org:8085/bamboo/browse/OSGI" target="_top">ran</a> 
+	  against all of them as part of our continuous integration process.
+	  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="osgi-intro"></a>1.8.&nbsp;Where can I learn about OSGi?</h2></div></div></div><p>
+	   The best place to start is The Osgi Alliance <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.osgi.org/" target="_top">home</a> and 
+	   <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www2.osgi.org/Main/HomePage" target="_top">developer</a> pages which
+	   provide the OSGi specifications, introductions and many links and blogs on the topic.
+	   Please see the reference documentation appendix for more information.
+ 	  </p><p>
+	   In addition, all OSGi implementation websites host detailed, step-by-step tutorials and introduction.
+	  </p><p>   
+	   If you discover any additional materials useful for OSGi newbies, please let us know to update the list.
+	   Thank you.
+	  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="building-the-sources"></a>1.9.&nbsp;I have problems building the sources. What can I do?</h2></div></div></div><p>Please see the file called <code class="literal">readme-building.txt</code> found in the source tree.
+      </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="logging"></a>1.10.&nbsp;How can I use logging in OSGi?</h2></div></div></div><p>OSGi platforms do not change the way libraries work, it just
+        enforces tighter classloading. Thus, you can, in most of the cases,
+        use the same logging strategy used in non-OSGi environments.</p><p>Spring (and Gemini Blueprint) use internally the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://commons.apache.org/logging/" target="_top">commons-logging API</a>
+        which acts as an "ultra-thin bridge between different logging
+        implementations". In OSGi, just like in a non-OSGi environment, Spring
+        and Gemini Blueprint delegate all logging (including initialisation) to the
+        actual commons-logging API implementation.</p><p>Out of the box, <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.slf4j.org/" target="_top">SLF4J</a> library is provided, which
+        shares the same purpose as commons-logging but without the
+        class loading discovery mechanism (that causes loading issues), using
+        static wiring (see the SLF4J site for more info). To use slf4j, make sure
+        you use: <code class="literal">slf4j-api-XXX.jar</code>, <code class="literal">jcl104-overslf4j-XXX.jar</code>
+        and <code class="literal">slf4j-log4j-XXX.jar</code> (where XXX stands for the slf4j version).
+        The last jar provides the static wiring between slf4j and log4j - if another implementation
+        is desired (such as jdk14), then a different jar is required (for the jdk14 that would be
+        slf4j-jdk14-XXX.jar) - see the official SLF4J site for more information.
+        Please see <a href="spring-osgi-faq.html#commons-logging" title="1.11.&nbsp;If you use the commons-logging API, why rely on SLF4J and not the commons-logging jar?">this
+        question</a> for more details on why commons-logging jar is not
+        used.</p><p>Gemini Blueprint uses SLF4J on top of <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://logging.apache.org/log4j/" target="_top">Log4J</a> but this can be
+        easily changed. As part of log4j initialisation, a
+        <code class="literal">log4j.properties</code> or <code class="literal">log4j.xml</code>
+        configuration fille needs to be present in the bundle classpath. This
+        means that the configuration file has to be part of your bundle or one
+        of its attached fragments. Besides SLF4J, for another OSGi-aware
+        solution, one can try <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://wiki.ops4j.org/dokuwiki/doku.php?id=pax:logging" target="_top">Pax
+        Logging</a>.</p><p>To learn more about log4j setup process, follow this <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://logging.apache.org/log4j/1.2/manual.html" target="_top">link</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="commons-logging"></a>1.11.&nbsp;If you use the commons-logging API, why rely on SLF4J and
+        not the commons-logging jar?</h2></div></div></div><p>The commons-logging project provides the commons-logging API
+        (<code class="literal">commons-logging-api-nn.jar</code>) along with an
+        implementation (<code class="literal">commons-logging-adapters-nn.jar</code>)
+        that provides a wrapper between the API and the actual logging libraries
+        used underneath (such as log4j, java.util.logging, etc). However, in
+        order to determine what implementation should be used, commons-logging
+        library tries to do some classloading-based discovery that is fragile
+        and can fail unexpectedly. In an strict classloading environment such
+        as OSGi, this mechanism adds unnecessary complexity - that's why we
+        decided to use SFL4J which is not just simpler and actively maintained
+        but is also OSGi-friendly out of the box.</p><p>For more information about commons-logging classloading
+        problems, see these links: <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://radio.weblogs.com/0122027/2003/08/15.html" target="_top">#1</a>
+        <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.qos.ch/logging/thinkAgain.jsp" target="_top">#2</a></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="getting-commons-logging-to-work"></a>1.12.&nbsp;I have to use commons-logging, what can I do?</h2></div></div></div><p>If you have to use commons-logging (for example the jar is required by certain bundles)
+        then try using the most recent version commons-logging version (1.1+) as it provides more options
+        on the discovery process. Below are some settings that can be used to make commons-logging work
+        inside an OSGi environment:</p><div class="itemizedlist"><ul type="disc"><li><p>1.0.x</p><p>
+          	Unfortunately, commons-logging 1.0.x uses the thread context class loader (TCCL) always for <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://commons.apache.org/logging/commons-logging-1.1/tech.html#A_Short_Theory_Guide_To_JCL" target="_top">loading
+          	loggers</a> implementations. Inside an OSGi environment, the TCCL is undefined and cannot be relied upon.
+          	Since managing the TCCL is almost impossible as most loggers are defined as static fields that need to
+          	resolved on class loading, using a different <code class="classname">LogFactory</code> is advised. One can use
+          	the <span class="emphasis"><em>org.apache.commons.logging.LogFactory</em></span> system property to specify a different
+          	log factory however, the commons-logging bundle should be able to load this class.</p></li><li><p>1.1.x</p><p>If using commons logging 1.1.x, one can turn off the tccl usage through <span class="emphasis"><em>use_tccl</em></span>
+          	property, part of the <span class="emphasis"><em>commons-logging.properties</em></span> file.
+          	<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://commons.apache.org/logging/commons-logging-1.1/troubleshooting.html" target="_top">http://commons.apache.org/logging/commons-logging-1.1/troubleshooting.html</a>. Additionally,
+          	1.1.x provides several system properties (such as <span class="emphasis"><em>org.apache.commons.logging.Log.allowFlawedContext</em></span>,
+          	<span class="emphasis"><em>org.apache.commons.logging.Log.allowFlawedDiscovery</em></span> and 
+          	<span class="emphasis"><em>org.apache.commons.logging.Log.allowFlawedHierarchy</em></span>) that can change the behavious of the discovery process.
+          	See the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://commons.apache.org/logging/apidocs/org/apache/commons/logging/impl/LogFactoryImpl.html" target="_top">LogFactoryImpl</a>
+          	javadoc for more details.</p></li></ul></div><p>In our tests, commons logging 1.1.x can be used with reasonable success inside OSGi. We haven't been able to find a generic
+        configuration for commons logging 1.0.x that works and that does not rely on fragile hacks dependent on the running environment.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="logging-impl-choice"></a>1.13.&nbsp;Why don't you use the OSGi logging service/[insert your favourite
+        logging library in here]?</h2></div></div></div><p>It is completely up to you what logging implementation you want
+        Gemini Blueprint to use. To route log messages to the OSGi logging service, 
+        just use a commons-logging API implementation that delegates to the 
+        OSGi logging service, such as Pax Logging.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="osgi-wrapping"></a>1.14.&nbsp;I have to use [insert name] library/framework inside. What can I do?</h2></div></div></div><p>
+          OSGi requires JARs to contain certain <code class="literal">MANIFEST.MF</code> entries which indicate what classes are 
+          required and shared by each archive. This means that <span class="emphasis"><em>tradition</em></span> jars cannot be used inside an OSGi environment. 
+          To solve the problem one can:
+          </p><div class="itemizedlist"><ul type="disc"><li><p>Use a repository of pre-wrapped libraries such as <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.eclipse.org/orbit/" target="_top">Orbit</a>,
+          	  <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://felix.apache.org/site/apache-felix-commons.html" target="_top">Felix Commons</a> or Knopflerfish <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.knopflerfish.org/repo/index.html" target="_top">repository</a>.
+          	  Gemini Blueprint uses the SpringSource Enterprise <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springsource.com/repository/app/" target="_top">Bundle Repository</a> 
+          	  for its dependencies, which you might find useful. Additionally, for artifacts that have not yet made it into SpringSource Repository,
+          	  Gemini Blueprint provides a small, temporary (Amazon S3) 
+          	  Maven repository (<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://s3.amazonaws.com/maven.springframework.org/osgi" target="_top">link</a> | 
+          	  <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://s3browse.com/explore/maven.springframework.org/osgi/" target="_top">browser-friendly link</a>) for its internal usage.</p></li><li><p>Wrap the necessary jars with proper OSGi manifest. While this can be done by hand, we strongly recommend Peter Kriens
+          	  excellent <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.aqute.biz/Code/Bnd" target="_top">bnd</a> tool which can do this for you automatically.
+          	  For Maven, see Felix <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://felix.apache.org/site/maven-bundle-plugin-bnd.html" target="_top">
+          	  maven-bundle-plugin</a>.
+          	  </p></li><li><p>Include the jar inside your OSGi bundle and include it in the bundle classpath through <span class="emphasis"><em>Bundle-ClassPath</em></span>
+          	  directive. See the OSGi specification for more information.</p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="jdk-crippled-jta-api"></a>1.15.&nbsp;I keep getting <span class="emphasis"><em>java.lang.NoClassDefFoundError: javax/transaction/...</em></span> when trying to do data access..</h2></div></div></div><p>
+          This problem is likely to be caused by bad class wiring. All 1.3+ JDKs include incomplete <span class="emphasis"><em>javax.transaction</em></span> 
+          and <span class="emphasis"><em>javax.transaction.xa</em></span> packages for usage inside ORB environments. To address the problem, use a proper
+          JTA library which contains all the classes from the forementioned packages and exports them with a specific version to prevent
+          confusion.
+          </p><p>
+          Gemini Blueprint wraps JTA 1.1 library for OSGI environments which can be found at Spring snapshot repository. One can deploy this library
+          and specify version 1.1 for <span class="emphasis"><em>javax.transaction*</em></span> packages inside <span class="emphasis"><em>Import-Package</em></span> header.
+          By specifying the version, one can be sure that the proper package is used.
+          </p><p>
+          Note that JTA 1.1 is compatible with version 1.0.1.
+          </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="incomplete-osgi-jar"></a>1.16.&nbsp;When doing integration testing I receive <span class="emphasis"><em>java.lang.NoClassDefFoundError: org.osgi.vendor.framework property not set</em></span>... </h2></div></div></div><p>Remove the official OSGi jars (osgi.jar or osgi-r4-core.jar) from the classpath and use only the actual OSGi platform (Equinox/Knopflerfish/Felix) 
+	  	 jars. The former provides only the public classes without an actual implementation and thus cannot be used during runtime, only during the compilation stage.
+	  	 </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="auto-export-visibility"></a>1.17.&nbsp;The autoExport option doesn't work properly!</h2></div></div></div><p>autoExport flag, part of the service exporter, will discover and
+        include for exporting only the <span class="emphasis"><em>visible</em></span> interfaces/classes implemented
+        by the service object. Consider class
+        <code class="literal">GenericApplicationContext</code> which implements among
+        others, interfaces <code class="literal">BeanFactory</code> (from
+        <code class="literal">org.springframework.beans.factory</code> package) and
+        <code class="literal">ResourceLoader</code>
+        (<code class="literal">org.springframework.core.io</code>).</p><p>
+          </p><div class="mediaobject" align="center"><img src="images/visibility.png" align="middle"><div class="caption"><p>Class Hierarchy</p></div></div><p>
+        </p><p>Depending on your OSGi imports, the exporting bundle can see
+        only one of the packages, none or both. Based on these visibility
+        settings, the exporter will only export the classes that are 'known'
+        to the exporting bundle. For example, if the exporting bundle sees
+        <code class="literal">org.springframework.core.io</code> but not
+        <code class="literal">org.springframework.beans.factory</code>, the service will
+        be exported as a <code class="literal">ResourceLoader</code> but not as a
+        <code class="literal">BeanFactory</code>. In fact, exporting the object as a
+        <code class="literal">BeanFactory</code> will fail since the bundle doesn't see
+        this interface and thus doesn't know how to handle its contract.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="junit382-serialization"></a>1.18.&nbsp;When using Gemini Blueprint integration testing I get an exception about serialVersionUID. What is the problem?</h2></div></div></div><p>
+      	This problem occurs on Spring DM versions up to 1.0 - consider upgrading to 1.0.1 or better. If you are stuck with 1.0 see below.
+      	When running an integration test, Gemini Blueprint will duplicate the test instance and execute it inside OSGi. To avoid problems
+      	like this one, make sure you are using the same libraries (with the same version) as Spring DM when running your test. This
+      	particular problem for example is caused by a JUnit 3.8.2 vs 3.8.x serialization compatibility. Make sure that you are using
+      	at least JUnit 3.8.2 for the execution of your tests. 
+      	</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="pde-errors"></a>1.19.&nbsp;I'm using Eclipse PDE and I started getting some weird exceptions/behaviour. What's the matter?</h2></div></div></div><p>
+      	Eclipse PDE uses Equinox OSGi platform underneath which (like other OSGi platforms) caches the bundles between re-runs. When
+      	the cache is not properly updated, one can encounter strange behaviour (such as the new services/code being picked up)
+      	or errors ranging from class versioning to linkage. Consider doing a complete clean build or, in case of Eclipse, 
+      	creating a new workspace or deleting the bundle folder (depends on each project settings but most users should find it at:
+      	<code class="code">[workspace_dir]\.metadata\.plugins\org.eclipse.pde.core\OSGi\org.eclipse.osgi\bundles</code>).
+      	</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="upgrade-to-1.1"></a>1.20.&nbsp;I'm upgrading to Spring DM 1.1 but now I get some ClassNotFoundExceptions. What has changed?</h2></div></div></div><p>
+      	In Spring DM 1.1 M2, the proxy infrastructure has been refined to avoid <span class="emphasis"><em>type leaks</em></span>, the usage of dynamic imports
+      	or exposure of class loader chain delegation. If you encounter class visibility problems during the upgrade then it's likely you have
+      	missing imports which were previously resolved as a side effect of Spring DM proxy weaving process. 
+      	</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="proxy-equality"></a>1.21.&nbsp;I've noticed that objects imported by Gemini Blueprint are not always equal to the raw target service. Why is that?</h2></div></div></div><p>
+     	To deal with dynamics, Gemini Blueprint creates proxies around the imported services. The proxies are classes (generated at runtime), different
+     	from the target but able to intercept the calls made to it. Since a proxy is different then its target, comparing objects against it can 
+     	yield different results then when the comparison is done against the target. In most scenarios this is not a problem but there might be 
+     	corner cases where this contract matters. Since 1.1, Gemini Blueprint importer proxies implement <code class="interfacename">InfrastructureProxy</code> 
+     	interface (from Spring framework) which allow access to the raw target.
+     	</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="static-collections"></a>1.22.&nbsp;My Gemini Blueprint collection doesn't change even though the number of OSGi service changes. What's wrong?</h2></div></div></div><p>
+     	Make sure the Gemini Blueprint collections are injected into object of compatible types (for example <code class="literal">list</code> into 
+     	<code class="interfacename">java.util.List</code> or <code class="interfacename">java.util.Collection</code>). If the types are not compatible,
+     	the container will have to perform 
+     	<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://static.springframework.org/spring/docs/2.5.x/reference/validation.html#beans-beans-conversion" target="_top">type conversion</a>,
+     	transforming the Gemini Blueprint managed collection into a 'normal' one, unaware of the OSGi dynamics.
+     	</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="update-to-1.2"></a>1.23.&nbsp;I have upgraded to Gemini Blueprint but my custom extender/web extender configuration doesn't work anymore. What has changed?</h2></div></div></div><p>Since Spring 2.5.6, the symbolic names of the artifacts have changed slightly. Spring DM/Gemini Blueprint aligned its symbolic names as well with the 
+     	new patter since Spring DM 1.2.0 M2. Thus the prefix <code class="literal">org.springframework.bundle.osgi</code> has been changed to 
+     	<code class="literal">org.eclipse.gemini.blueprint</code>; for example Gemini BLueprint extender symbolic name was changed from 
+     	<code class="literal">org.springframework.bundle.osgi.extender</code> to <code class="literal">org.eclipse.gemini.blueprint.extender</code> 
+		(notice the missing <code class="literal">bundle</code> word).
+		To fix this problem, change the reference to the old symbolic name (usually inside the fragments manifests or LDAP filters) to the new one.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="linkage-error"></a>1.24.&nbsp;I get a <code class="literal">java.lang.LinkageError: loader constraint violation</code> if I use Gemini Blueprint. Things work fine with vanilla OSGi. 
+     	What's wrong?</h2></div></div></div><p>Most likely the bundle imports do not identify all the transitive packages dependencies (through the <span class="emphasis"><em>uses</em></span> directive). Packages
+     	imported from a bundle, can in turn, depend on other packages from other bundles - these are sometime called transitive or indirect dependencies. If
+     	these are not properly identified, the OSGi platform cannot validate the wiring and allows multiple versions of the same class to be available inside the
+     	same class space. This problem appears whether Gemini Blueprint is used or not. However, due to the usage of proxies inside Gemini Blueprint (which forces eager class loading
+     	for the classes proxies), the class graph is evaluated at runtime causing the problem to occur early. With vanilla OSGi, the loading occurs lazy which means
+     	the problem is going to occur at runtime rather then at startup.
+     	To fix the problem, add the relevant transitive packages to the list of exported packages, either manually or automatically through tools such as  
+     	<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.springsource.org/bundlor" target="_top">Bundlor</a> or <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.aqute.biz/Code/Bnd" target="_top">Bnd</a>.
+     	For more information on the <code class="literal">uses</code> directive please see the OSGi spec, 
+     	section	3.6.4 or <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://blog.springsource.com/2008/10/20/understanding-the-osgi-uses-directive/" target="_top">this</a> SpringSource blog entry.
+     	</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="blueprint"></a>1.25.&nbsp;What can I use Gemini Blueprint with the Blueprint Container spec? What's the relationship between the two? Are the they compatible?
+     	Are there any differences?</h2></div></div></div><p>Gemini Blueprint (Spring DM 2.0) is the Reference Implementation for OSGi 4.2 Blueprint Container specification. Simply deploy your Blueprint bundles in a platform
+     	where Gemini Blueprint is already activated and you should be done. For more information about Blueprint and Gemini Blueprint, please see the 
+     	<span class="emphasis"><em>Blueprint Container</em></span> chapter in the reference documentation.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="kf-2.3-boot-delegation"></a>1.26.&nbsp;I'm using Knopflerfish 2.3.x and I have a lot of visibility exception. How can I fix this?</h2></div></div></div><p>Since 2.3.0, Knopflerfish changed the way it does bootpath delegation which causes classes to be loaded from inside and outside OSGi. Set
+     	the system property <code class="literal">org.knopflerfish.framework.strictbootclassloading</code> to <code class="literal">true</code> before starting up the Knopflerfish
+     	platform to prevent this from happening. See Knopflerfish 2.3.x release <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.knopflerfish.org/release_notes_2.3.html" target="_top">notes</a> for more
+     	information.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="pde-cycles"></a>1.27.&nbsp;I'm using Gemini Blueprint and Spring jars inside Eclipse PDE but I get an error about cycle dependency errors. What's wrong?</h2></div></div></div><p>Some of the Spring jars (optionally) import each other packages for bootstrapping reasons. While cycles between jars are allowed and
+     	supported by the OSGi platform, by default, Eclipse PDE complains about them. Since Eclipse Galileo, it is possible to enable binary cycles
+     	in a target platform. allowing the build to compile. For more information, see 
+     	<a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/guide/tools/export_wizards/export_plugins.htm" target="_top">this</a> 
+     	entry from the Eclipse Reference Guide.</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="faq.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="faq.html">Home</a></td><td width="40%" align="right">&nbsp;</td></tr><tr><td width="40%" align="left" valign=&q