<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Binomed :: Blog</title>
	
	<link>http://blog.binomed.fr</link>
	<description>Binomed Development Team</description>
	<lastBuildDate>Mon, 28 Nov 2011 11:20:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BinomedBlog" /><feedburner:info uri="binomedblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>CineShowTime V3.0.0 pour Android est sortie</title>
		<link>http://blog.binomed.fr/2011/11/28/cineshowtime-v3-0-0-pour-android-est-sortie/</link>
		<comments>http://blog.binomed.fr/2011/11/28/cineshowtime-v3-0-0-pour-android-est-sortie/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 11:19:04 +0000</pubDate>
		<dc:creator>jef</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://blog.binomed.fr/?p=528</guid>
		<description><![CDATA[Après des mois de travail, la version 3.0.0 de CineShowTime est enfin disponible ! Nouvelle interface graphique. Un interface spéciale pour tablette  ! Optimisation de l&#8217;interface sur de nombreux points. Ajout du langage chinois Vous pouvez la télécharger à cette url : http://bit.ly/sUJ1ZZ &#160;]]></description>
			<content:encoded><![CDATA[<div>
<p>Après des mois de travail, la version 3.0.0 de CineShowTime est enfin disponible !</p>
<ul>
<li>Nouvelle interface graphique.</li>
<li>Un interface spéciale pour tablette  !</li>
<li>Optimisation de l&#8217;interface sur de nombreux points.</li>
<li>Ajout du langage chinois</li>
</ul>
<p>Vous pouvez la télécharger à cette url : <a title="Android Market" href="http://bit.ly/sUJ1ZZ" target="_blank">http://bit.ly/sUJ1ZZ</a></p>
</div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.binomed.fr/2011/11/28/cineshowtime-v3-0-0-pour-android-est-sortie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Binomed Sous Git</title>
		<link>http://blog.binomed.fr/2011/03/25/binomed-sous-git/</link>
		<comments>http://blog.binomed.fr/2011/03/25/binomed-sous-git/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 11:01:29 +0000</pubDate>
		<dc:creator>jef</dc:creator>
				<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://blog.binomed.fr/?p=501</guid>
		<description><![CDATA[Juste un petit article pour vous dire que Binomed quitte le monde SVN au profit de Git, nous restons open source mais notre code sera maintenant disponible sur GitHub à l&#8217;adresse suivante : https://github.com/organizations/binomed.]]></description>
			<content:encoded><![CDATA[<p>Juste un petit article pour vous dire que Binomed quitte le monde SVN au profit de Git, nous restons open source mais notre code sera maintenant disponible sur GitHub à l&#8217;adresse suivante : <a href="https://github.com/organizations/binomed">https://github.com/organizations/binomed</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.binomed.fr/2011/03/25/binomed-sous-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Java] OSGI &amp; Spring DM, mise en place d’un environement equinox (partie 1)</title>
		<link>http://blog.binomed.fr/2011/02/11/osgi-spring-dm-mise-en-place-dun-environement-equinox-part1/</link>
		<comments>http://blog.binomed.fr/2011/02/11/osgi-spring-dm-mise-en-place-dun-environement-equinox-part1/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 16:32:29 +0000</pubDate>
		<dc:creator>jef</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.binomed.fr/?p=467</guid>
		<description><![CDATA[Voici mon premier post technologique, je vais tenter d&#8217;être bref concis et d&#8217;aller droit au but. Pour ce premier post, je vais traiter d&#8217;un sujet que je suis en train d&#8217;essayer de mettre en oeuvre actuellement à savoir OSGI avec Spring DM. Si je créé un article, c&#8217;est par ce que tous les tutoriaux OSGI [...]]]></description>
			<content:encoded><![CDATA[<p>Voici mon premier post technologique, je vais tenter d&#8217;être bref concis et d&#8217;aller droit au but.</p>
<p>Pour ce premier post, je vais traiter d&#8217;un sujet que je suis en train d&#8217;essayer de mettre en oeuvre actuellement à savoir OSGI avec Spring DM. <span id="more-467"></span> Si je créé un article, c&#8217;est par ce que tous les tutoriaux OSGI que l&#8217;on voient traitent de OSGI et Spring DM toujours dans environnement eclipse mais jamais de la mise en place d&#8217;une application OSGI en dehors d&#8217;un environnement eclipse.</p>
<p>Je vais partir du principe que si vous lisez ce post, vous savez déjà ce qu&#8217;est OSGI et spring DM. Si ce n&#8217;est pas le cas, je vous invite a aller voir les sites suivants : <a href="http://www.vogella.de/articles/OSGi/article.html">Tutorial OSGI</a> pour les anglophones et sinon ce site là pour les français : <a href="http://t-templier.developpez.com/tutoriel/java/osgi/osgi1/">Tutorial OSGI fr</a> ainsi que ce site : <a href="http://static.springsource.org/osgi/docs/1.2.x/reference/html/">Spring DM</a>. Pour ce tutoriel, je me suis appuyer sur un autre tutoriel très bien fait : <a href="http://sites.google.com/site/springosgi/">http://sites.google.com/site/springosgi/</a>.J&#8217;aurais encore plein de site à vous partager mais là n&#8217;est pas le sujet.</p>
<p>Commençons donc notre tutoriel.</p>
<h1>Objectifs</h1>
<p>Quels sont les objectifs de ce tutoriel ? </p>
<p>Mettre en oeuvre une application OSGI avec de l&#8217;instanciation automatique de services et la possibilité d&#8217;instancier des beans avec spring.<br />
Pour ce tutoriel, j&#8217;ai choisi le conteneur OSGI equinox. Je verrais pour tester les autres conteneurs plus tard.</p>
<p>voici la liste des prérequis : </p>
<li>Avoir <a href="http://maven.apache.org/download.html">Maven </a>d&#8217;installé</li>
<li>Avoir la version <a href="http://download.eclipse.org/equinox/">3.6.1 d&#8217;OSGI equinox</a></li>
<li>les fichiers disponible sur ce tutoriel de osgi. <a href="http://sites.google.com/site/springosgi/springdm-tutorial.zip">samples</a></li>
<li>un <a href="http://www.eclipse.org/downloads/">eclipse helios</a></li>
<p><H1>Préparation de l’environnement de développement </H1></p>
<p>Il faut suivre les étapes décrites <a href="http://sites.google.com/site/springosgi/ch01.html">ici</a>. Ceci vous permettra d&#8217;avoir tous les bundles nécessaires.<br />
Les points 1.2, 1.3 et 1.4 sont ceux à suivre pour notre tutoriel</p>
<p><H1>Ecriture du bundle</H1></p>
<p>Nous allons donc créer notre bundle, pour cela dans eclipse,<br />
<a href="http://blog.binomed.fr/wp-content/uploads/2011/02/new_project.jpg"><img src="http://blog.binomed.fr/wp-content/uploads/2011/02/new_project.jpg" alt="" title="new_project" width="502" height="506" class="alignnone size-full wp-image-470" /></a></p>
<p>Nous allons lui donner un nom de package ainsi qu&#8217;un nom.</p>
<p><a href="http://blog.binomed.fr/wp-content/uploads/2011/02/new_project_1.jpg"><img src="http://blog.binomed.fr/wp-content/uploads/2011/02/new_project_1.jpg" alt="" title="new_project_1" width="501" height="581" class="alignnone size-full wp-image-472" /></a></p>
<p><a href="http://blog.binomed.fr/wp-content/uploads/2011/02/new_project_2.jpg"><img src="http://blog.binomed.fr/wp-content/uploads/2011/02/new_project_2.jpg" alt="" title="new_project_2" width="500" height="576" class="alignnone size-full wp-image-473" /></a></p>
<p><H2>Création des services</H2></p>
<p>Nous allons maintenant créé 2 services OSGI très basiques, ces derniers n&#8217;ont en objectif que d&#8217;afficher une chaîne de caractères. L&#8217;idée est de pouvoir instancier un bean avec le scope prototype et l&#8217;autre pas.</p>
<p>Nous allons donc créer les packages et classes suivantes : </p>
<p><a href="http://blog.binomed.fr/wp-content/uploads/2011/02/packages_services.jpg"><img src="http://blog.binomed.fr/wp-content/uploads/2011/02/packages_services.jpg" alt="" title="packages_services" width="230" height="123" class="alignnone size-full wp-image-475" /></a></p>
<p>Voici le code des classes utilisées : </p>
<h3>IClassIOC.java</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.binomed.osgi.spring.test.api</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> IClassIOC <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">void</span> helloWorld<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h3>IClassIOCPrototype.java</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.binomed.osgi.spring.test.api</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> IClassIOCPrototype <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">void</span> helloWorld<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h3>
ClassIOC.java<br />
</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.binomed.osgi.spring.test.api.impl</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.binomed.osgi.spring.test.api.IClassIOC</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ClassIOC <span style="color: #000000; font-weight: bold;">implements</span> IClassIOC <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> ClassIOC<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;LOAD!!!!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> helloWorld<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Hello World Spring with OSGI&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h3>
ClassIOCPrototype.java<br />
</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.binomed.osgi.spring.test.api.impl</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.binomed.osgi.spring.test.api.IClassIOCPrototype</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ClassIOCPrototype <span style="color: #000000; font-weight: bold;">implements</span> IClassIOCPrototype <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> ClassIOCPrototype<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;LOAD PROTO!!!!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> helloWorld<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Hello World Spring with OSGI From Proto&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h2>Edition du manifest.mf</h2>
<p>Nous allons maintenant configurer notre manifest.MF afin d&#8217;avoir les bonnes dépendances de bundle.</p>

<div class="wp_syntax"><div class="code"><pre class="properties" style="font-family:monospace;">Manifest-Version: <span style="">1.0</span>
Bundle-ManifestVersion: <span style="">2</span>
Bundle-Name: OsgiSpringTest
Bundle-SymbolicName: com.binomed.osgi.spring.test
Bundle-Version: 1.0.0
Bundle-Activator: com.binomed.osgi.spring.test.Activator
Bundle-Vendor: binomed
Bundle-RequiredExecutionEnvironment: JavaSE-<span style="">1.6</span>
Import-Package: org.osgi.framework
Bundle-ActivationPolicy: lazy
Require-Bundle: org.springframework.context,
 org.springframework.beans,
 org.springframework.aop,
 org.springframework.core</pre></div></div>

<p>de cette manière on peut distinguer qu&#8217;on sera dépendant de beans, context pour pouvoir instancier notre bean.</p>
<h2>Ecriture des fichiers springs</h2>
<p>Nous allons maintenant créer 2 fichiers spring qui seront reconnus par un bundle et instanciés automatiquement dans notre conteneur OSGI : </p>
<p><a href="http://blog.binomed.fr/wp-content/uploads/2011/02/xml_files.jpg"><img src="http://blog.binomed.fr/wp-content/uploads/2011/02/xml_files.jpg" alt="" title="xml_files" width="240" height="75" class="alignnone size-full wp-image-479" /></a></p>
<p>Ces deux fichiers vont contenir respectivement la description des beans et services osgi à utiliser.</p>
<p>Voici le contenu des 2 fichiers </p>
<h3>applicationContext.xml</h3>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;beans</span> 	<span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/beans&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">xmlns:osgi</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/osgi&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/beans </span>
<span style="color: #009900;">							http://www.springframework.org/schema/beans/spring-beans.xsd</span>
<span style="color: #009900;"> 							http://www.springframework.org/schema/osgi </span>
<span style="color: #009900;"> 							http://www.springframework.org/schema/osgi/spring-osgi.xsd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;bean</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ClassIOC&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;com.binomed.osgi.spring.test.api.impl.ClassIOC&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/bean<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;bean</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ClassIOCPrototype&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">scope</span>=<span style="color: #ff0000;">&quot;prototype&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;com.binomed.osgi.spring.test.api.impl.ClassIOCPrototype&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/bean<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/beans<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h3>applicationContext-osgi.xml</h3>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;beans</span> 	<span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/beans&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">xmlns:osgi</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/osgi&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/beans </span>
<span style="color: #009900;">							http://www.springframework.org/schema/beans/spring-beans.xsd</span>
<span style="color: #009900;"> 							http://www.springframework.org/schema/osgi </span>
<span style="color: #009900;"> 							http://www.springframework.org/schema/osgi/spring-osgi.xsd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;osgi:service</span> 	<span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ClassIOCOsgi&quot;</span></span>
<span style="color: #009900;">				<span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;ClassIOC&quot;</span></span>
<span style="color: #009900;">				<span style="color: #000066;">interface</span>=<span style="color: #ff0000;">&quot;com.binomed.osgi.spring.test.api.IClassIOC&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;osgi:service</span> 	<span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ClassIOCPrototypeOsgi&quot;</span></span>
<span style="color: #009900;">				<span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;ClassIOCPrototype&quot;</span></span>
<span style="color: #009900;">				<span style="color: #000066;">interface</span>=<span style="color: #ff0000;">&quot;com.binomed.osgi.spring.test.api.IClassIOCPrototype&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/beans<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>On peut donc voir que notre bean ClassIOCPrototype est avec le scope prototype, il sera donc créé autant d&#8217;instance de ClassIOPrototype que l&#8217;on invoque le bean avec spring.</p>
<h2>Ecrtitue de l&#8217;Activator</h2>
<p>Nous allons maintenant nous interessé au code notre activator dans lequel on va vérifier plusieurs choses sur le fonctionnement d&#8217;OSGI avec Spring.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.binomed.osgi.spring.test</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.osgi.framework.BundleActivator</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.osgi.framework.BundleContext</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.osgi.framework.ServiceReference</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.springframework.context.ApplicationContext</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.binomed.osgi.spring.test.api.IClassIOC</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.binomed.osgi.spring.test.api.IClassIOCPrototype</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> <span style="color: #003399;">Activator</span> <span style="color: #000000; font-weight: bold;">implements</span> BundleActivator <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> BundleContext context<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">static</span> BundleContext getContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> context<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
	 * )
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> start<span style="color: #009900;">&#40;</span>BundleContext bundleContext<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Activator</span>.<span style="color: #006633;">context</span> <span style="color: #339933;">=</span> bundleContext<span style="color: #339933;">;</span>
		<span style="color: #003399;">Thread</span> thread <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Thread</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Runnable</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
			@Override
			<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #003399;">Thread</span>.<span style="color: #006633;">sleep</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">5000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					inject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		thread.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> inject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #003399;">String</span> beanIdProt <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;ClassIOCPrototype&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		IClassIOC classIOC <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>IClassIOC<span style="color: #009900;">&#41;</span> getContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getService</span><span style="color: #009900;">&#40;</span>getContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getServiceReference</span><span style="color: #009900;">&#40;</span>IClassIOC.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		IClassIOCPrototype classIOCPrototype <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>IClassIOCPrototype<span style="color: #009900;">&#41;</span> getContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getService</span><span style="color: #009900;">&#40;</span>context.<span style="color: #006633;">getServiceReference</span><span style="color: #009900;">&#40;</span>IClassIOCPrototype.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		classIOC.<span style="color: #006633;">helloWorld</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		classIOCPrototype.<span style="color: #006633;">helloWorld</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		classIOCPrototype <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>IClassIOCPrototype<span style="color: #009900;">&#41;</span> getContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getService</span><span style="color: #009900;">&#40;</span>context.<span style="color: #006633;">getServiceReference</span><span style="color: #009900;">&#40;</span>IClassIOCPrototype.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		classIOCPrototype.<span style="color: #006633;">helloWorld</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		ServiceReference webContext <span style="color: #339933;">=</span> context.<span style="color: #006633;">getAllServiceReferences</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;org.springframework.context.ApplicationContext&quot;</span>, <span style="color: #0000ff;">&quot;(org.springframework.context.service.name=com.binomed.osgi.spring.test)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
		ApplicationContext ac <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>ApplicationContext<span style="color: #009900;">&#41;</span> context.<span style="color: #006633;">getService</span><span style="color: #009900;">&#40;</span>webContext<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		ac.<span style="color: #006633;">getBean</span><span style="color: #009900;">&#40;</span>beanIdProt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		ac.<span style="color: #006633;">getBean</span><span style="color: #009900;">&#40;</span>beanIdProt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> stop<span style="color: #009900;">&#40;</span>BundleContext bundleContext<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Activator</span>.<span style="color: #006633;">context</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>On peut voir que j&#8217;invoque plusieurs instruction dans le but de tester les instanciations faites sur mes beans. </p>
<p>Nous allons maintenant lancer notre bundle dans eclipse et analyser les résultats.</p>
<h1>Lancement du bundle dans eclipse</h1>
<p>Nous allons créer une nouvelle configuration osgi : </p>
<p><a href="http://blog.binomed.fr/wp-content/uploads/2011/02/new_configuration.jpg"><img src="http://blog.binomed.fr/wp-content/uploads/2011/02/new_configuration.jpg" alt="" title="new_configuration" width="206" height="214" class="alignnone size-full wp-image-483" /></a></p>
<p>Nous allons cocher tous les plugins visible sur l&#8217;écran suivant. Pour des besoins de lisibilités, j&#8217;ai affiché uniquement les bundles à prendre : </p>
<p><a href="http://blog.binomed.fr/wp-content/uploads/2011/02/bundles.jpg"><img src="http://blog.binomed.fr/wp-content/uploads/2011/02/bundles.jpg" alt="" title="bundles" width="604" height="491" class="alignnone size-full wp-image-484" /></a></p>
<p>Il est très important que le bundle
<pre>org.springframework.osgi.extender</pre>
<p> soit coché !  c&#8217;est lui qui s&#8217;occupe de charger les applications context dans notre conteneur OSGI au moment de l&#8217;installation du bundle.</p>
<p>Penser aussi à ajouter dans l&#8217;onglet Arguments dans VM Arguments l&#8217;option
<pre> -Dosgi.clean=true</pre>
<p> de façon à bien penser à nettoyer le cache OSGI à chaque lancement.</p>
<p>Vous pouvez maintenant valider et lancer le bundle. Vous devrez avoir une sortie console similaire à celle ci :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">osgi<span style="color: #33cc33;">&gt;</span> log4j:WARN No appenders could be found <span style="color: #00b100; font-weight: bold;">for</span> logger <span style="color: #33cc33;">(</span>org.springframework.osgi.extender.internal.activator.ContextLoaderListener<span style="color: #33cc33;">)</span>.
log4j:WARN Please initialize the log4j system properly.
LOAD<span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span>
LOAD PROTO<span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span>
Hello World Spring with OSGI
Hello World Spring with OSGI From Proto
Hello World Spring with OSGI From Proto
LOAD PROTO<span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span>
LOAD PROTO<span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span></pre></div></div>

<p>Qu&#8217;est ce qu&#8217;on peut en conclure en fonction de nos instructions et notre configuration.</p>
<li>Le permier LOAD!!!! nous indique que notre premier service c&#8217;est loader tout seul au moment où le bundle est installé.</li>
<li>Le LOAD PROTO !!! apparaît avec un décalage indiquant qu&#8217;un service OSGI pointant vers un bean en scope prototype n&#8217;est pas pas chargé automatiquement avec le bundle extender</li>
<li>Le premier Hello World montre bien que l&#8217;on a réussi très simplement à invoquer un service de notre conteneur</li>
<li>idem pour les 2 autres appels sauf que l&#8217;on constate que un service OSGI utilisant un bean en scope prototype restera en mémoire, il ne sera pas réinstancié à chaque appel du service.</li>
<li>Enfin mes 2 derniers LOAD PROTO !!! montre que l&#8217;on peut quand même appeler l&#8217;application context de notre bundle en vue d&#8217;instancier des bean. Attention toute fois, cette pratique n&#8217;est pas recommendée, il est préférable en OSGI de gérer soit même dans ce cas l&#8217;instanciation plutot que de passer par l&#8217;application Context.</li>
<p>Bon tout marche dans eclipse. Ok c&#8217;est bien mais c&#8217;est comme dans tout tutoriel OSGI ! Nous allons maintenant voir comment faire marcher cet exemple en dehors d&#8217;eclipse.</p>
<h1>Lancement du bundle en dehors d&#8217;eclipse</h1>
<p>Nous allons commencer par générer un  jar de notre bundle. Pour cela cliquer sur votre projet et faites exporter et choississez de l&#8217;exporter en tant que plugin</p>
<p><a href="http://blog.binomed.fr/wp-content/uploads/2011/02/export.jpg"><img src="http://blog.binomed.fr/wp-content/uploads/2011/02/export.jpg" alt="" title="export" width="576" height="548" class="alignnone size-full wp-image-485" /></a></p>
<p>Nous allons choisir un répertoire d&#8217;export : </p>
<p><a href="http://blog.binomed.fr/wp-content/uploads/2011/02/export_2.jpg"><img src="http://blog.binomed.fr/wp-content/uploads/2011/02/export_2.jpg" alt="" title="export_2" width="607" height="590" class="alignnone size-full wp-image-487" /></a></p>
<h2>Préparation du conteneur equinox</h2>
<p>Nous allons donc maintenant préparer notre conteneur equinox. Nous avons besoin de plusieurs choses :  </p>
<li>extraire le zip de notre sdk equinox</li>
<li>Préparer un répertoire de la façon suivante</li>
<pre>
MonTestSpringOSGI
    |
    `->org.eclipse.equinox.common_3.6.0.v20100503.jar
    `->org.eclipse.osgi_3.6.1.jar
    `->org.eclipse.update.configurator_3.3.100.v20100512.jar
    +-- configuration
            |
            `->config.ini
    +-- plugins
            |
            `->com.springsource.javax.activation-1.1.1.jar
            `->com.springsource.javax.annotation-1.0.0.jar
            `->com.springsource.javax.el-2.1.0.jar
            `->com.springsource.javax.mail-1.4.0.jar
            `->com.springsource.javax.persistence-1.0.0.jar
            `->com.springsource.javax.xml.bind-2.0.0.jar
            `->com.springsource.javax.xml.soap-1.3.0.jar
            `->com.springsource.javax.xml.stream-1.0.1.jar
            `->com.springsource.javax.xml.ws-2.1.1.jar
            `->com.springsource.org.aopalliance-1.0.0.jar
            `->com.springsource.org.apache.commons.collections-3.2.0.jar
            `->com.springsource.org.apache.commons.logging-1.1.1.jar
            `->com.springsource.org.apache.log4j-1.2.15.jar
            `->com.springsource.slf4j.api-1.5.0.jar
            `->com.springsource.slf4j.jcl-1.5.0.jar
            `->com.springsource.slf4j.log4j-1.5.0.jar
            `->org.springframework.aop-2.5.6.A.jar
            `->org.springframework.beans-2.5.6.A.jar
            `->org.springframework.context-2.5.6.A.jar
            `->org.springframework.core-2.5.6.A.jar
            `->org.springframework.osgi.core-1.1.3.RELEASE.jar
            `->org.springframework.osgi.extender-1.1.3.RELEASE.jar
            `->org.springframework.osgi.io-1.1.3.RELEASE.jar
            `->com.binomed.osgi.spring.test_1.0.0.jar
</pre>
<p>les jars org.eclipse.equinox.common_3.6.0.v20100503.jar et org.eclipse.osgi_3.6.1.jar (je l&#8217;ai renommé de façon à simplifier son invocation)  sont à récupérer dans le répertoire plugins du sdk equinox, le jar org.eclipse.update.configurator_3.3.100.v20100512.jar est à récupérer dans le répertoire plugins de votre eclipse. Ce dernier sert à installer automatiquement tous les bundles présents dans le répertoire plugins<br />
Les autres jars sont à récupérer dans la target platform générée au début du tutoriel.<br />
Vous constaterez que j&#8217;ai mis notre bundle com.binomed.osgi.spring.test_1.0.0.jar</p>
<p>Nous allons maintenant éditer le fichier config.ini afin de définir le démarrage de notre application</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">osgi.bundles<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">org.eclipse.equinox.common@2:start\</span>
, org.eclipse.update.configurator@3:start\
,reference\:file\:plugins/org.springframework.osgi.extender-1.1.3.RELEASE.jar@start\
,reference\:file\:plugins/com.springsource.javax.activation-1.1.1.jar@start\
,reference\:file\:plugins/com.binomed.osgi.spring.test_1.0.0.jar@start
osgi.bundles.defaultStartLevel<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">4</span>
eclipse.ignoreApp<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">true</span>
osgi.noShutdown<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">true </span>
osgi.clean<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">true</span></pre></div></div>

<p>Cette configuration permet de spécifier l&#8217;installation auto des bundles, l&#8217;auto instanciation des services contenus dans nos bundles démarrés et enfin le démarrage de notre bundle.</p>
<p>Nous allons donc maintenant lancer notre application, ouvrons donc une console  et lançons l&#8217;instruction suivante :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">java -jar org.eclipse.osgi_3.6.1.jar -consoleLog -console</pre></div></div>

<p>nous avons donc bien la sortie suivante :</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">osgi<span style="color: #33cc33;">&gt;</span> log4j:WARN No appenders could be found <span style="color: #00b100; font-weight: bold;">for</span> logger <span style="color: #33cc33;">(</span>org.springframework.osgi.extender.internal.activator.ContextLoaderListener<span style="color: #33cc33;">)</span>.
log4j:WARN Please initialize the log4j system properly.
LOAD<span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span>
LOAD PROTO<span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span>
Hello World Spring with OSGI
Hello World Spring with OSGI From Proto
Hello World Spring with OSGI From Proto
LOAD PROTO<span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span>
LOAD PROTO<span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span><span style="color: #33cc33;">!</span></pre></div></div>

<p>C&#8217;est tout pour le moment. <img src='http://blog.binomed.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.binomed.fr/2011/02/11/osgi-spring-dm-mise-en-place-dun-environement-equinox-part1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Correction pour CineShowTime for webOS</title>
		<link>http://blog.binomed.fr/2010/08/09/correction-pour-cineshowtime-for-webos/</link>
		<comments>http://blog.binomed.fr/2010/08/09/correction-pour-cineshowtime-for-webos/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 13:29:02 +0000</pubDate>
		<dc:creator>gawel</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://blog.binomed.fr/?p=421</guid>
		<description><![CDATA[Certains d&#8217;entre vous nous ont remonté une erreur comme quoi l&#8217;application CineShowTime pour webOS ne fonctionnait plus. Nous avons pu identifier et corriger le problème, aucune mise à jour de l&#8217;application n&#8217;est nécessaire. Une nouvelle mise à jour est tout de même en cours de validation, afin de consolider l&#8217;application. Merci pour vos retours !]]></description>
			<content:encoded><![CDATA[<p>Certains d&#8217;entre vous nous ont remonté une erreur comme quoi l&#8217;application CineShowTime pour webOS ne fonctionnait plus.</p>
<p>Nous avons pu identifier et corriger le problème, aucune mise à jour de l&#8217;application n&#8217;est nécessaire. Une nouvelle mise à jour est tout de même en cours de validation, afin de consolider l&#8217;application.<span id="more-421"></span></p>
<p>Merci pour vos retours !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.binomed.fr/2010/08/09/correction-pour-cineshowtime-for-webos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CineShowTime sur le podium du SFRJTD !</title>
		<link>http://blog.binomed.fr/2010/07/23/cineshowtime-sur-le-podium-du-sfrjtd/</link>
		<comments>http://blog.binomed.fr/2010/07/23/cineshowtime-sur-le-podium-du-sfrjtd/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 15:19:20 +0000</pubDate>
		<dc:creator>gawel</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://blog.binomed.fr/?p=401</guid>
		<description><![CDATA[Le concours SFR Jeunes Talents Développeurs a été organisé par SFR en ce début d&#8217;année et est un concours d&#8217;application pour webOS (le concours avait été fait l&#8217;année dernière pour les plateformes Android). L&#8217;équipe Binomed a participé au concours avec son application CineShowTime for webOS. Etant en lice face a d&#8217;autres applications de très bonne [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<p>Le concours SFR Jeunes Talents Développeurs a été organisé par SFR en ce début d&#8217;année et est un concours d&#8217;application pour webOS (le concours avait été fait l&#8217;année dernière pour les plateformes Android).</p>
<p>L&#8217;équipe Binomed a participé au concours avec son application CineShowTime for webOS.</p>
<p><span id="more-401"></span></p>
<p style="text-align: center;"><img class="size-medium wp-image-402   aligncenter" title="sfrjtd" src="http://blog.binomed.fr/wp-content/uploads/2010/07/sfrjtd-300x112.png" alt="" width="300" height="112" /></p>
<p>Etant en lice face a d&#8217;autres applications de très bonne facture également, CineShowTime a réussi à se frayer une place jusqu&#8217;au podium, arrivant à la 3ème place !</p>
<p>Les résultats étant :</p>
<ol>
<li><a href="http://developer.palm.com/webChannel/index.php?packageid=com.radioteam.radionova">RadioNova</a></li>
<li><a href="http://developer.palm.com/webChannel/index.php?packageid=com.its.puzzlekitchendeluxe">Puzzle Kitchen</a></li>
<li><a href="http://developer.palm.com/webChannel/index.php?packageid=com.binomed.cineshowtime">CineShowTime for webOS</a></li>
</ol>
<p>Et également sont remis deux prix spéciaux à :</p>
<ul>
<li><a href="http://developer.palm.com/webChannel/index.php?packageid=com.umbrella.holidaystrip">Holidays Trip</a></li>
<li><a href="http://developer.palm.com/webChannel/index.php?packageid=com.apo.procrastinator">Procrastinator</a></li>
</ul>
<p>Merci aux organisateurs du concours, et n&#8217;hésitez pas à essayer <a href="http://www.sfrjtd.fr/projectlist">les autres applications du concours</a>, toutes françaises ! <img src='http://blog.binomed.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.binomed.fr/2010/07/23/cineshowtime-sur-le-podium-du-sfrjtd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sortie de CineShowTime for webOS v1.2.1</title>
		<link>http://blog.binomed.fr/2010/05/28/sortie-de-cineshowtime-for-webos-v1-2-1/</link>
		<comments>http://blog.binomed.fr/2010/05/28/sortie-de-cineshowtime-for-webos-v1-2-1/#comments</comments>
		<pubDate>Fri, 28 May 2010 08:01:45 +0000</pubDate>
		<dc:creator>gawel</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[CineShowTime]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[pixi]]></category>
		<category><![CDATA[pre]]></category>

		<guid isPermaLink="false">http://blog.binomed.fr/?p=340</guid>
		<description><![CDATA[CineShowTime for webOS est sorti en version 1.2.1 ! La nouvelle version de CineShowTime est sortie, elle comporte les changements suivants : Ajout d&#8217;un écran &#171;&#160;What&#8217;s new&#160;&#187; reprenant les nouveautés lors d&#8217;une mise à jour Ajout de la gestion de thèmes de couleurs Correction de quelques bugs Cette version est disponible ici.]]></description>
			<content:encoded><![CDATA[<p><strong>CineShowTime for webOS est sorti en version 1.2.1 !<span id="more-340"></span><br />
</strong><br />
<img class="alignright size-full wp-image-341" style="margin-left: 1px; margin-right: 1px;float:right;" title="CineShowTime 1.2.1" src="http://blog.binomed.fr/wp-content/uploads/2010/05/cineshowtime_light.jpg" alt="CineShowTime 1.2.1" width="296" height="137" /><br />
La nouvelle version de CineShowTime est sortie, elle comporte les changements suivants :</p>
<ul>
<li>Ajout d&#8217;un écran &laquo;&nbsp;What&#8217;s new&nbsp;&raquo; reprenant les nouveautés lors d&#8217;une mise à jour</li>
<li>Ajout de la gestion de thèmes de couleurs</li>
<li>Correction de quelques bugs</li>
</ul>
<p>Cette version est disponible <a href="http://developer.palm.com/appredirect/?packageid=com.binomed.cineshowtime">ici</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.binomed.fr/2010/05/28/sortie-de-cineshowtime-for-webos-v1-2-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CineShowTime sur Palm…</title>
		<link>http://blog.binomed.fr/2010/03/24/cineshowtime-sur-palm/</link>
		<comments>http://blog.binomed.fr/2010/03/24/cineshowtime-sur-palm/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 14:27:25 +0000</pubDate>
		<dc:creator>gawel</dc:creator>
				<category><![CDATA[CineShowTime]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[sfr]]></category>
		<category><![CDATA[webos]]></category>

		<guid isPermaLink="false">http://blog.binomed.fr/?p=5</guid>
		<description><![CDATA[C&#8217;est pour bientôt ! Tout comme les Palm Pre et Pixi qui seront bientôt disponibles chez SFR et tournant sous WebOS. Pour plus d&#8217;informations sur ces terminaux n&#8217;hésitez pas à visiter le site de Palm.]]></description>
			<content:encoded><![CDATA[<p>C&#8217;est pour bientôt !</p>
<p>Tout comme les Palm Pre et Pixi qui seront bientôt disponibles chez SFR et tournant sous <a href="http://fr.wikipedia.org/wiki/Palm_webOS">WebOS</a>.<br />
Pour plus d&#8217;informations sur ces terminaux n&#8217;hésitez pas à visiter le site de <a href="http://www.palm.com/fr/fr/">Palm</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.binomed.fr/2010/03/24/cineshowtime-sur-palm/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ouverture du blog Binomed</title>
		<link>http://blog.binomed.fr/2010/02/13/bonjour-tout-le-monde/</link>
		<comments>http://blog.binomed.fr/2010/02/13/bonjour-tout-le-monde/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 10:15:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[binomed]]></category>

		<guid isPermaLink="false">http://blog.binomed.fr/?p=1</guid>
		<description><![CDATA[L&#8217;équipe de développement Binomed ouvre son blog ! Vous pourrez suivre sur ce blog les évolutions des applications, des informations sur l&#8217;équipe, sur le matériel ou sur le développement. En espérant que vous puissiez y trouver quelque chose d&#8217;intéressant ! A bientôt, Binomed.]]></description>
			<content:encoded><![CDATA[<p><strong>L&#8217;équipe de développement Binomed ouvre son blog !</strong></p>
<p>Vous pourrez suivre sur ce blog les évolutions des applications, des informations sur l&#8217;équipe, sur le matériel ou sur le développement.</p>
<p>En espérant que vous puissiez y trouver quelque chose d&#8217;intéressant !</p>
<p>A bientôt,</p>
<p>Binomed.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.binomed.fr/2010/02/13/bonjour-tout-le-monde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

