<html><head> | |
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> | |
<title>Eclipse Gemini Blueprint Reference Guide</title><link rel="stylesheet" type="text/css" href="css/html.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Eclipse Gemini Blueprint Reference Guide"><link rel="next" href="preface.html" title="Preface"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d21e1"></a>Eclipse Gemini Blueprint Reference Guide</h1></div><div><div class="authorgroup"> | |
<div class="author"><h3 class="author"><span class="firstname">Adrian M</span> <span class="surname">Colyer</span></h3><div class="affiliation">SpringSource, division of VMware</div></div> | |
<div class="author"><h3 class="author"><span class="firstname">Hal</span> <span class="surname">Hildebrand</span></h3><div class="affiliation">Oracle</div></div> | |
<div class="author"><h3 class="author"><span class="firstname">Costin</span> <span class="surname">Leau</span></h3><div class="affiliation">SpringSource, division of VMware</div></div> | |
<div class="author"><h3 class="author"><span class="firstname">Andy</span> <span class="surname">Piper</span></h3><div class="affiliation">BEA</div></div> | |
</div></div><div><p class="releaseinfo">2.1.0.RELEASE</p></div><div><p class="copyright">Copyright © 2006 -, 2011 VMware Inc., Oracle Inc.</p></div><div><div class="legalnotice"><a name="d21e22"></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 class="ulink" 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 class="ulink" 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 class="toc"><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 5.x 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#gemini-blueprint-2.1.0">5.1. Gemini Blueprint 2.1.0+</a></span></dt><dd><dl><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.1.0.x:jdk8">5.1.1. Java 8</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.1.x:spring-4.3.x">5.1.2. Spring 4.3.x</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.1.x:gemini-blueprint-extensions">5.1.3. Gemini Blueprint Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.0">5.2. Gemini Blueprint 2.0.0+</a></span></dt><dd><dl><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.0.x:blueprint">5.2.1. OSGi 5.x Blueprint Reference Implementation (RI)</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.0.x:jdk5">5.2.2. Java 7</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.x:spring-4.2.x">5.2.3. Spring 4.2.x</a></span></dt></dl></dd><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.x">5.3. Gemini Blueprint 1.x</a></span></dt><dd><dl><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.x:blueprint">5.3.1. OSGi 4.2 Blueprint Reference Implementation (RI)</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.x:jdk5">5.3.2. Java 5</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.x:spring-3.x">5.3.3. Spring 3.x</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.x:imports">5.3.4. Service Importer Improvements</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-2.0.x:security">5.3.5. Java 2 Security Integration</a></span></dt></dl></dd><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-1.2.x">5.4. Spring DM 1.2.x</a></span></dt><dd><dl><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-1.2.x:security">5.4.1. Java 2 Security Integration</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-1.2.x:compendium">5.4.2. Compendium Services Support</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-1.2.x:sym-name-change">5.4.3. Changed Spring DM Symbolic Names</a></span></dt><dt><span class="section"><a href="what-is-new.html#gemini-blueprint-1.2.x:ebr-usage">5.4.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:optional-libraries">8.5. Optional Gemini Blueprint Bundles</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:spring-namespaces">8.6. Spring XML Authoring Support</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:imports-exports">8.7. Importing and Exporting Packages</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:ext-libs">8.8. Considerations When Using External Libraries</a></span></dt><dt><span class="section"><a href="app-deploy.html#app-deploy:troubleshooting">8.9. 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:annotations-vs-xml-declarations">9.2.1. Referencing services via the @ServiceReference annotation</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:availability">9.2.2. Imported Service Availability</a></span></dt><dd><dl><dt><span class="section"><a href="service-registry.html#service-registry:refs:availability:startup">9.2.2.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.2.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.3. 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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.4. 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.4.1. Greedy Proxying</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:collection:member-type">9.2.4.2. Member Type</a></span></dt><dt><span class="section"><a href="service-registry.html#service-registry:refs:collection:attributes">9.2.4.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.4.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.4.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.5. 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.6. 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#d21e3337">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"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </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"> Preface</td></tr></table></div></body></html> |