<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Benjamin Cabé &#187; osgi</title>
	<atom:link href="http://blog.benjamin-cabe.com/tag/osgi/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.benjamin-cabe.com</link>
	<description>Eclipse, the birds and yo momma</description>
	<lastBuildDate>Wed, 17 Mar 2010 09:21:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Given a class, how to retrieve its bundle?</title>
		<link>http://blog.benjamin-cabe.com/2009/07/16/given-a-class-how-to-retrieve-its-bundle</link>
		<comments>http://blog.benjamin-cabe.com/2009/07/16/given-a-class-how-to-retrieve-its-bundle#comments</comments>
		<pubDate>Thu, 16 Jul 2009 15:34:13 +0000</pubDate>
		<dc:creator>Benjamin Cabé</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[3.5]]></category>
		<category><![CDATA[bundle]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[osgi]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.benjamin-cabe.com/2009/05/13/osgi-retrouver-le-bundle-auquel-appartient-une-classe</guid>
		<description><![CDATA[OSGI R4.2 (thus Equinox 3.5) comes (well, will come, since the spec. is not final yet) with a new simple and handy utility: the org.osgi.framework.FrameworkUtil.getBundle(Class) static method, which allows to retrieve the bundle a given class belongs to. More specifically, this method will give you the bundle who loaded the given class, or null if the class has [...]]]></description>
			<content:encoded><![CDATA[<p><strong>OSGI R4.2</strong> (thus <strong>Equinox 3.5</strong>) comes (well, will come, since the spec. is not final yet) with a new simple and handy utility: the <span style="font-family: courier new,courier;">org.osgi.framework.FrameworkUtil.getBundle(Class)</span> static method, which allows <strong>to retrieve the bundle a given class belongs to</strong>.</p>
<p>More specifically, this method will give you the bundle who loaded the given class, or <span style="font-family: courier new,courier;">null</span> if the class has not been loaded by the OSGi framework (e.g. if it is a class belonging to the boot classpath&#8230;).</p>
<p>Thus, whenever you want to access information such as the version of a bundle, its headers,  etc. without having to query its <span style="font-family: courier new,courier;">Activator </span>(perhaps you don&#8217;t even have an Activator for this bundle&#8230;), you know what you&#8217;ve got to use! Of course, whoever says <span style="font-family: courier new,courier;">Bundle</span>, means <span style="font-family: courier new,courier;">BundleContext</span>, and this handy helper is also very convenient to easily publish/consume OSGi services on behalf of the bundle&#8230;  <img src='http://blog.benjamin-cabe.com/wp-includes/images/smilies/icon_rolleyes.gif' alt=':roll:' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.benjamin-cabe.com/2009/07/16/given-a-class-how-to-retrieve-its-bundle/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Fiche de référence OSGi</title>
		<link>http://blog.benjamin-cabe.com/2009/01/13/fiche-de-reference-osgi</link>
		<comments>http://blog.benjamin-cabe.com/2009/01/13/fiche-de-reference-osgi#comments</comments>
		<pubDate>Tue, 13 Jan 2009 10:10:08 +0000</pubDate>
		<dc:creator>Benjamin Cabé</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[bundle]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[jeff mcaffer]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[osgi]]></category>
		<category><![CDATA[pde]]></category>

		<guid isPermaLink="false">http://blog.benjamin-cabe.com/?p=405</guid>
		<description><![CDATA[En guise d&#8217;avant-goût au livre &#8221;Equinox and OSGi: The Power Behind Eclipse&#8220;, une fiche de référence sur OSGi et son implémentation de référence Equinox a été concoctée par Jeff McAffer et mise à disposition sur le site DZone. Attention, il faut un compte pour pouvoir télécharger le PDF —et je n&#8217;ai pas le droit de le [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float:right; margin-left:1em;" title="Equinox &amp; OSGi" src="http://blog.benjamin-cabe.com/wp-content/uploads/2009/01/equi-150x150.jpg" alt="Equinox &amp; OSGi" width="150" height="150" />En guise d&#8217;avant-goût au livre &#8221;<a title="Equinox &amp; OSGi, le livre" href="http://www.amazon.com/Equinox-OSGi-Power-Behind-Eclipse/dp/0321585712" target="_blank">Equinox and OSGi: The Power Behind Eclipse</a>&#8220;, une fiche de référence sur OSGi et son implémentation de référence Equinox a été concoctée par <a title="Blog de Jeff McAffer" href="http://eclipsesource.com/blogs/author/jeff/" target="_blank">Jeff McAffer</a> et mise à disposition sur le site <a title="DZone" href="http://www.dzone.com/" target="_blank">DZone</a>.</p>
<p><strong><em>Attention</em></strong><em>, il faut un compte pour pouvoir télécharger le PDF —et je n&#8217;ai pas le droit de le mettre à disposition ici <img src='http://blog.benjamin-cabe.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .</em></p>
<p>En 6 pages, Jeff fait le tour de tous les concepts de base d&#8217;OSGi/Equinox, et répond à des questions que tout développeur de bundles OSGi (et plus généralement de plug-ins Eclipse) s&#8217;est un jour posé :</p>
<ul>
<li>Faut-il préférer l&#8217;en-tête <span style="font-family: 'courier new', courier;">Import-Package</span> à <span style="font-family: 'courier new', courier;">Require-Bundle</span> pour la gestion des dépendances?</li>
<li>Quelle sont les différences entre les <em>services </em>OSGi, les <em>declarative services</em> et les <em>extensions</em> Eclipse? </li>
<li>Comment manipuler ses bundles depuis la console OSGi?</li>
<li>etc. <img src='http://blog.benjamin-cabe.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<p><strong><span style="text-decoration: underline;">A lire absolument!</span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.benjamin-cabe.com/2009/01/13/fiche-de-reference-osgi/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSGi en bref : La directive singleton</title>
		<link>http://blog.benjamin-cabe.com/2008/06/25/osgi-en-bref-la-directive-singleton</link>
		<comments>http://blog.benjamin-cabe.com/2008/06/25/osgi-en-bref-la-directive-singleton#comments</comments>
		<pubDate>Wed, 25 Jun 2008 21:55:21 +0000</pubDate>
		<dc:creator>Benjamin Cabé</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[osgi]]></category>
		<category><![CDATA[pde]]></category>
		<category><![CDATA[singleton]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://blog.benjamin-cabe.com/?p=179</guid>
		<description><![CDATA[En développant vos plug-ins, vous avez peut-être un jour été confronté à une erreur, à première vue obscure, due à une directive singleton soit disant manquante&#8230; En effet, le PDE lève une erreur lorsqu&#8217;un plug-in qui n&#8217;est pas &#8220;singleton&#8221; souhaite définir des extensions ou des points d&#8217;extension. Pourquoi, et qu&#8217;est-ce au juste que cette directive  [...]]]></description>
			<content:encoded><![CDATA[<p>En développant vos plug-ins, vous avez peut-être un jour été confronté à une erreur, à première vue obscure, due à une directive singleton soit disant manquante&#8230;<br />
En effet, le PDE lève une erreur lorsqu&#8217;un plug-in qui n&#8217;est pas &#8220;<strong>singleton</strong>&#8221; souhaite définir des extensions ou des points d&#8217;extension.</p>
<p><strong>Pourquoi, et qu&#8217;est-ce au juste que cette directive  ?</strong></p>
<table border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td style="text-align: center;">
<p style="text-align: center;"><span style="font-family: courier new,courier;">Bundle-SymbolicName: com.acme.module.test; singleton:=true</span></p>
</td>
</tr>
</tbody>
</table>
<p>Dans la <strong>norme OSGi</strong>, il est indiqué que &#8220;<strong><span style="font-family: courier new,courier;">singleton</span></strong>&#8221; (renseigné dans l&#8217;entrée de MANIFEST <span style="font-family: courier new,courier;">Bundle-SymbolicName</span>) doit être placé à <span style="font-family: courier new,courier;">true</span> lorsque l&#8217;on souhaite interdire la résolution par le framework de plusieurs versions d&#8217;un même bundle.</p>
<p>C&#8217;est donc tout à fait logique qu&#8217;un plug-in amenant des extensions ou des points d&#8217;extension soit impérativement un singleton ; car il serait sans cela très difficile, voire impossible, de gérer les différentes versions résolues au runtime&#8230;<br />
Imaginez simplement un plug-in amenant une vue, que l&#8217;on pourrait déployer dans deux, trois, &#8230; versions différentes au sein du même Eclipse : à quoi devrait-on s&#8217;attendre lors de l&#8217;affichage du menu &#8220;Show View &gt; Other&#8230;&#8221; ???</p>
<p>Dans le cas où on écrit un plug-in n&#8217;amenant ni extension ni point d&#8217;extension —un <strong>plug-in de librairies</strong>, par exemple—, on sera en revanche ravi de pouvoir dire que ce n&#8217;est pas un singleton (c&#8217;est le comportement par défaut), et ainsi <strong>faire coexister différentes versions</strong> de nos librairies dans le même Eclipse. C&#8217;est d&#8217;ailleurs exactement ce qui se passe avec les plug-ins ICU, Ant ou log4j, dont les utilisateurs viennent dépendre en venant préciser le numéro (ou l&#8217;intervalle) de version qui les intéresse&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.benjamin-cabe.com/2008/06/25/osgi-en-bref-la-directive-singleton/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Livre &#8220;OSGi in Practice&#8221;</title>
		<link>http://blog.benjamin-cabe.com/2008/04/20/livre-osgi-in-practice</link>
		<comments>http://blog.benjamin-cabe.com/2008/04/20/livre-osgi-in-practice#comments</comments>
		<pubDate>Sun, 20 Apr 2008 21:53:33 +0000</pubDate>
		<dc:creator>Benjamin Cabé</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[Neil Bartlett]]></category>
		<category><![CDATA[osgi]]></category>

		<guid isPermaLink="false">http://blog.benjamin-cabe.com/?p=152</guid>
		<description><![CDATA[Neil Bartlett, expert et évangéliste de la technologie OSGi (voir notamment ses excellents articles &#8220;Getting started with OSGi&#8221; sur EclipseZone), vient d&#8217;entamer l&#8217;écriture d&#8217;un livre intitulé &#8220;OSGi in practice&#8220;. Ce dernier sera disponible sous licence Creative Commons, et le premier chapitre est d&#8217;ores et déjà téléchargeable ici. Si tout va bien, trois chapitres supplémentaires devraient [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.osgi.org"><img style="float: left; margin-right: 15px;" title="Logo OSGi alliance" src="http://blog.benjamin-cabe.com/wp-content/uploads/2008/04/logo1-300x145.jpg" alt="" width="149" height="72" /></a><a title="Neil Bartlett / Blog" href="http://neilbartlett.name/blog" target="_blank">Neil Bartlett</a>, expert et évangéliste de la technologie <a class="zem_slink" title="OSGi" rel="homepage" href="http://www.osgi.org" target="_blank">OSGi</a> (voir notamment ses excellents articles &#8220;<a title="Neil Bartlett /Getting started with OSGi" href="http://neilbartlett.name/blog/osgi-articles/" target="_blank">Getting started with OSGi</a>&#8221; sur <a title="EclipseZone" href="http://www.eclipsezone.com/" target="_blank">EclipseZone</a>), vient d&#8217;entamer l&#8217;écriture d&#8217;un <strong>livre</strong> intitulé &#8220;<strong>OSGi in practice</strong>&#8220;.</p>
<p>Ce dernier sera disponible sous licence <strong><a title="Creative Commons" href="http://creativecommons.org/" target="_blank">Creative Commons</a></strong>, et le premier chapitre est d&#8217;ores et déjà téléchargeable <strong><a href="http://neilbartlett.name/blog/osgibook/">ici</a></strong>.<br />
Si tout va bien, trois chapitres supplémentaires devraient être disponibles dans le courant de cette semaine ; Neil Bartlett encourageant ses lecteurs à contribuer activement à l&#8217;ouvrage, en le relisant ou bien en proposant du contenu.</p>
<p>Même si ce ne sont que 25 pages pour l&#8217;instant, le style de l&#8217;auteur est très agréable, les exemples clairs, et il y a même quelques <strong>exercices de mise en pratique</strong> à la fin du chapitre !</p>
<p>Ce <a title="RSS feed " href="http://neilbartlett.name/blog/categories/osgi/feed/atom" target="_self">flux RSS</a> vous permettra d&#8217;être tenus au courant dès qu&#8217;un nouveau chapitre sera disponible.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.benjamin-cabe.com/2008/04/20/livre-osgi-in-practice/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
