<?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; singleton</title>
	<atom:link href="http://blog.benjamin-cabe.com/tag/singleton/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>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>Snippet Eclipse pour créer un singleton</title>
		<link>http://blog.benjamin-cabe.com/2008/04/21/snippet-eclipse-pour-creer-un-singleton</link>
		<comments>http://blog.benjamin-cabe.com/2008/04/21/snippet-eclipse-pour-creer-un-singleton#comments</comments>
		<pubDate>Mon, 21 Apr 2008 17:06:06 +0000</pubDate>
		<dc:creator>Benjamin Cabé</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[singleton]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.benjamin-cabe.com/?p=157</guid>
		<description><![CDATA[A avoir à tout prix dans sa configuration Eclipse, ce snippet permet de créer instantanément une implémentation du pattern Singleton pour une classe Java. Pour l&#8217;ajouter, allez dans Window-&#62;Preferences-&#62;Java-&#62;Editor-&#62;Templates ; puis créez un nouveau snippet que vous appelerez&#8230; au hasard &#8230; &#8220;singleton&#8221; ! Vous pouvez éventuellement vous créer des variantes pour avoir également une version [...]]]></description>
			<content:encoded><![CDATA[<p>A avoir à tout prix dans sa configuration Eclipse, ce <strong>snippet </strong>permet de créer instantanément une implémentation du pattern <strong>Singleton</strong> pour une classe Java.</p>
<p>Pour l&#8217;ajouter, allez dans Window-&gt;Preferences-&gt;Java-&gt;Editor-&gt;Templates ; puis créez un nouveau snippet que vous appelerez&#8230; au hasard &#8230; &#8220;singleton&#8221; ! <img src='http://blog.benjamin-cabe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Vous pouvez éventuellement vous créer des variantes pour avoir également une version thread-safe, une autre non &#8220;lazy-loadée&#8221;, etc&#8230;</p>
<p>[sourcecode language='java']<br />
private static ${enclosing_type} instance;</p>
<p>private ${enclosing_type}(){}</p>
<p>public static ${enclosing_type} getInstance(){<br />
if(null == instance){<br />
instance = new ${enclosing_type}();<br />
}<br />
return instance;<br />
}<br />
[/sourcecode]</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.benjamin-cabe.com/2008/04/21/snippet-eclipse-pour-creer-un-singleton/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
